用vue,Element-UI,Axios實現(xiàn)簡單的三級聯(lián)動

安裝并使用Element-UI:

  1. 安裝:
    npm i element-ui -S
  1. 引入 Element:
    完整引入 - 在 main.js 中寫入以下內(nèi)容:

         import Vue from 'vue';
         import ElementUI from 'element-ui';
         import 'element-ui/lib/theme-chalk/index.css';
         import App from './App.vue';
    
         Vue.use(ElementUI);
    
         new Vue({
              el: '#app',
              render: h => h(App)
         });
    
  2. 基本步驟都已經(jīng)ok,下面我們開始寫前端界面代碼:
    select.png
    上element-ui官網(wǎng),找到選擇器select這里我們就不多說了,復(fù)制粘貼,寫css樣式就行了。粘貼完修改完之后的樣子就是這個樣子了,selent框.png

  3. 使用:
    首先我們選擇之后數(shù)據(jù)才會發(fā)生改變,所以要給select綁定change事件。

vue中的應(yīng)用:

    //  里面各項值,請參考Element-UI
     <div>
        <el-select v-model="value" placeholder="請選擇省" class="sheng" @change="top">   //這個change事件是select的,不是option的,別寫在option里面
           <el-option
                v-for="item in sheng"
                :key="item.area_id"
                :label="item.area_name"
                :value="item.area_id">
           </el-option>
           </el-select>
           <br>
        <el-select v-model="value1" placeholder="請選擇市" class="shi" @change="content">
           <el-option
                v-for="item in shi.city_list"
                :key="item.area_id"   
                :label="item.area_name"
                :value="item.area_id">
           </el-option>
        </el-select>
        <el-select v-model="value2" placeholder="請選擇區(qū)" class="qu">
           <el-option
                  v-for="item in qu.county_list"
                  :key="item.area_id"
                  :label="item.area_name"
                  :value="item.area_id">
           </el-option>
        </el-select>
     </div>
  1. 這個時候可以使用json數(shù)據(jù),并找到j(luò)son數(shù)據(jù)里的數(shù)據(jù)特點;當(dāng)然也可以使用接口
    npm i axios -D
        import Axios from 'axios'
        export default {
          data() {
            return {
             sheng: [],
             value: '',
             shi: [],
             value1: '',
             qu: [],
             value2: '',
         }
        },
        methods: {
           top() {
              this.shi = this.sheng.filter(item => item.area_id  === this.value )[0]
              this.value1 = ''
              this.value2 = ''
           },
           content() {
              this.qu  = this.shi.city_list.filter(item => item.area_id === this.value1 )[0]
           },
        },
        created() {
           Axios.get(`http://m.xyucd.com:7000/address-list`).then(res => {
               let {data} = res.data
               this.sheng = data
           })
        }

4.效果圖:
sheng.png
shi.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容