最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue.js 2.0中select級(jí)聯(lián)下拉框?qū)嵗?/h1>
 更新時(shí)間:2017年03月06日 11:39:36   作者:w-rain  
在網(wǎng)上搜索了Vuejs2.0 動(dòng)態(tài)級(jí)聯(lián)select許久未果,決定自己總結(jié)一下自己的經(jīng)驗(yàn),有關(guān)select在Vue.js 2.0版本中的應(yīng)用,需要的朋友可以參考下

   在網(wǎng)上搜索了Vuejs2.0 動(dòng)態(tài)級(jí)聯(lián)select許久未果,決定自己總結(jié)一下自己的經(jīng)驗(yàn),有關(guān)select在Vue.js 2.0版本中的應(yīng)用。首先我先說(shuō)一下的我使用的技術(shù),我參考了網(wǎng)上成熟的經(jīng)驗(yàn),選擇以Vue.js 2.0+Vue-router+Vuex的全家桶。

    select首先要區(qū)分單選和多選,v-model在select單選和多選上有區(qū)別。

    select單選實(shí)例:

<select v-model="fruit">
 <option selected value="apple">蘋果</option>
 <option value="banana">香蕉</option>
 <option value="watermelon">西瓜</option>
</select>
<span>Selected:{{ fruit }}</span>

    當(dāng)被選中的option有value屬性時(shí),vm.selected 為對(duì)應(yīng)option的value值;否則為對(duì)應(yīng)options的text值。

    select多選實(shí)例:

<select v-model="fruit" multiple>
 <option selected value="apple">蘋果</option>
 <option value="banana">香蕉</option>
 <option value="watermelon">西瓜</option>
</select>
<span>Selected:{{ fruit | json }}</span>

對(duì)于多選的select,被選中的值會(huì)被放入一個(gè)數(shù)組中。當(dāng)然在我們實(shí)際開發(fā)中絕大部分都是動(dòng)態(tài)select的情況,所以接下來(lái)將分析動(dòng)態(tài)select的實(shí)例。

動(dòng)態(tài)select

我們可以通過(guò)v-for、v-bind指令動(dòng)態(tài)生成option,實(shí)例如下:

<template>
 <div id="app">
 <select v-model="fruit" >
 <option v-for="option in options" v-bind:value="option.value">
  {{option.text}}
 </option>
 </select>
 <span>Selected:{{ fruit | json }}</span>
 </div>
</template> 
<script>
 new Vue({
  el: '#app',
  data: {
   fruit: 'apple',
   options: [
    { text: '蘋果', value: 'apple' },
    { text: '香蕉', value: 'banana' },
    { text: '西瓜', value: 'watermelon' }
   ]
  }
 });
</script>

   生成的代碼結(jié)構(gòu)如下:

<select>
 <option value="apple">蘋果</option>
 <option value="banana">香蕉</option>
 <option value="watermelon">西瓜</option>
</select>

到這兒基礎(chǔ)知識(shí)總結(jié)完了,開始來(lái)干貨了。我在寫級(jí)聯(lián)select的時(shí)候遇到2個(gè)問(wèn)題,一個(gè)問(wèn)題是如何解決第一個(gè)select選中之后查詢關(guān)聯(lián)select的數(shù)據(jù);一個(gè)問(wèn)題就是我修改數(shù)據(jù)的時(shí)候如何默認(rèn)選中級(jí)聯(lián)的select數(shù)據(jù),顯示在頁(yè)面。這2個(gè)問(wèn)題主要還是第二個(gè)問(wèn)題困擾我一點(diǎn)。

第一個(gè)問(wèn)題的解決方案是對(duì)選中第一個(gè)select中的數(shù)據(jù)做監(jiān)聽,數(shù)據(jù)又變化就發(fā)起獲取第二個(gè)關(guān)聯(lián)select的請(qǐng)求。實(shí)例如下所示:

<template>
 <div class="box-select-first">
 <select v-model.lazy="resCity">
 <option v-for="sc in scLists" v-bind:value="sc.areacode">{{sc.cityname}}</option>
 </select>
 </div>
 <div class="box-select-second">
 <select v-model="resArea">
 <option v-for="sa in saLists" v-bind:value="sa.id">{{sa.areaname}}</option>
 </select>
 </div>
 
</template>
<script>
 export default {
 data: function () {
 return {
 resCity: null,
 resArea: null
 }
 },
 created: function() {
 let vm = this;
 vm.getSelectLists(); //獲取城市下拉列表
 },
 watch: {
 resCity: 'getSecondSelectLists' //獲取城市對(duì)應(yīng)轄區(qū)的下拉列表
 },
 methods: {
 getSelectLists: function() {},
 getSecondSelectLists: function(){}
 }
 }
 
</script>

第二個(gè)問(wèn)題的解決方案是首先我在實(shí)例已經(jīng)創(chuàng)建完成之后被調(diào)用,先獲取城市下拉列表成功之后再去獲取編輯詳情的數(shù)據(jù),然后延時(shí)綁定關(guān)聯(lián)的轄區(qū)列表的值,其實(shí)是為了獲取在生命周期內(nèi)監(jiān)聽城市之改變之后為先獲取轄區(qū)列表數(shù)據(jù)加載,這樣才能綁定顯示轄區(qū)的下拉列表。

<template>
 <div class="box-select-first">
 <select v-model.lazy="resCity">
 <option v-for="sc in scLists" v-bind:value="sc.areacode">{{sc.cityname}}</option>
 </select>
 </div>
 <div class="box-select-second">
 <select v-model="resArea">
 <option v-for="sa in saLists" v-bind:value="sa.id">{{sa.areaname}}</option>
 </select>
 </div>
 
</template>
<script>
 export default {
 data: function () {
 return {
 resCity: null,
 resArea: null
 }
 },
 created: function() {
 let vm = this;
 vm.getSelectLists();  //實(shí)例已經(jīng)創(chuàng)建完成之后獲取城市下拉列表
 },
 watch: {
 resCity: 'getSecondSelectLists'  //監(jiān)聽城市值變化,獲取城市對(duì)應(yīng)轄區(qū)的下拉列表
 },
 methods: {
 getSelectLists: function() {
 let vm = this;
 if(vm.$route.name == 'modif') { //判斷編輯頁(yè)面獲取編輯詳情數(shù)據(jù)
  vm.getDetails(vm.$route.params.id); 
 }
 },
 getSecondSelectLists: function(){},
 getDetails:function(){
 setTimeout(function() {
  vm.resArea = data.id; //延時(shí)綁定轄區(qū)的下拉選項(xiàng),為了轄區(qū)下拉數(shù)據(jù)先加載
  }, 300);
 }
 }
 }
</script>

總結(jié):

     在Vue.js 2.0的生命周期中,select的級(jí)聯(lián)下拉數(shù)據(jù)綁定,需要先加載好數(shù)據(jù),然后才能綁定值。不然無(wú)法成功綁定級(jí)聯(lián)下拉的值。

參考資料:

vue.js官網(wǎng)

以上所述是小編給大家介紹的Vue.js 2.0中select級(jí)聯(lián)下拉框?qū)嵗?,希望?duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • VUE中使用Vue-resource完成交互

    VUE中使用Vue-resource完成交互

    本篇文章主要介紹了VUE中使用Vue-resource完成交互,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • 淺入深出Vue之自動(dòng)化路由

    淺入深出Vue之自動(dòng)化路由

    這篇文章主要介紹了淺入深出Vue之自動(dòng)化路由,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • vue?使用mescroll.js框架實(shí)現(xiàn)下拉加載和上拉刷新功能

    vue?使用mescroll.js框架實(shí)現(xiàn)下拉加載和上拉刷新功能

    這篇文章主要介紹了vue?使用mescroll.js框架?實(shí)現(xiàn)下拉加載和上拉刷新功能,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • vue-cli3.0按需引入element-ui組件方式

    vue-cli3.0按需引入element-ui組件方式

    這篇文章主要介紹了vue-cli3.0按需引入element-ui組件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制文本內(nèi)容的例子

    Vue實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制文本內(nèi)容的例子

    今天小編就為大家分享一篇Vue實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制文本內(nèi)容的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Vue中引入使用patch-package為依賴打補(bǔ)丁問(wèn)題

    Vue中引入使用patch-package為依賴打補(bǔ)丁問(wèn)題

    這篇文章主要介紹了Vue中引入使用patch-package為依賴打補(bǔ)丁問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue.js中引入vuex儲(chǔ)存接口數(shù)據(jù)及調(diào)用的詳細(xì)流程

    vue.js中引入vuex儲(chǔ)存接口數(shù)據(jù)及調(diào)用的詳細(xì)流程

    這篇文章主要給大家介紹了關(guān)于在vue.js中引入vuex儲(chǔ)存接口數(shù)據(jù)及調(diào)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • Vue3利用自定義ref實(shí)現(xiàn)防抖功能

    Vue3利用自定義ref實(shí)現(xiàn)防抖功能

    在Vue3中,ref提供了訪問(wèn)組件內(nèi)DOM元素和子組件實(shí)例的方法,防抖是一種限制函數(shù)調(diào)用頻率的方法,即在一定時(shí)間內(nèi)多次觸發(fā)同一個(gè)函數(shù),只執(zhí)行最后一次觸發(fā)的函數(shù),本文將給大家介紹了Vue3如何利用自定義ref實(shí)現(xiàn)防抖,需要的朋友可以參考下
    2024-05-05
  • electron-vue利用webpack打包實(shí)現(xiàn)多頁(yè)面的入口文件問(wèn)題

    electron-vue利用webpack打包實(shí)現(xiàn)多頁(yè)面的入口文件問(wèn)題

    項(xiàng)目需要在electron的項(xiàng)目中新打開一個(gè)窗口,利用webpack作為靜態(tài)資源打包器,發(fā)現(xiàn)在webpack中可以設(shè)置多頁(yè)面的入口,今天來(lái)講一下我在electron中利用webpack建立多頁(yè)面入口的踩坑經(jīng)驗(yàn),需要的朋友可以參考下
    2019-05-05
  • vue中動(dòng)態(tài)綁定表單元素的屬性方法

    vue中動(dòng)態(tài)綁定表單元素的屬性方法

    下面小編就為大家分享一篇vue中動(dòng)態(tài)綁定表單元素的屬性方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02

最新評(píng)論

丹寨县| 建水县| 浑源县| 靖边县| 信宜市| 临沧市| 通河县| 丰县| 始兴县| 宕昌县| 阿城市| 栾城县| 大同县| 法库县| 阿鲁科尔沁旗| 遂平县| 仙居县| 平潭县| 河南省| 嘉定区| 二手房| 祁连县| 视频| 文山县| 临颍县| 讷河市| 阿勒泰市| 武强县| 英吉沙县| 大埔县| 南昌市| 宁河县| 万山特区| 南康市| 望奎县| 稻城县| 通州市| 县级市| 原阳县| 普兰县| 孝感市|