亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

element-ui中el-cascader動態(tài)加載和默認(rèn)值詳解

 更新時間:2023年05月05日 10:20:06   作者:zepcjsj0801  
vue+elementUI項(xiàng)目中el-cascader級聯(lián)選擇器使用頻率非常高,下面這篇文章主要給大家介紹了關(guān)于element-ui中el-cascader動態(tài)加載和默認(rèn)值的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

剛解決了這個問題,趁熱趕快拿出來涼涼,明天早上起來估計(jì)會忘

下拉框的選擇和默認(rèn)值對于我來說一直都是個讓人頭疼的事,倒不是有多么難,而是很繁瑣。

要保證有值,還要有顯示的文字。表單提交后,再回過頭編輯還要顯示出來選擇的項(xiàng)。

進(jìn)入正題吧,我看別人寫的文章也非常討厭巴拉巴拉一堆沒用的。

首先el-cascader最常用的是顯示省市區(qū),所有省市區(qū)三四千項(xiàng)一下子加載出來總會有個卡頓的過程,所以我一般用動態(tài)加載,這個element的文檔和例子很清楚了。

這是我代碼中的一部分,盡可能的去掉了多余的代碼

<el-cascader ref="areas" v-model="address.area_ids" 
:options="options" :props="props" separator="/" />
data() {
      return {
        options: [],
        address: {
          area: [],
          area_ids: [],
          value: '',
          lat: '',
          lng: ''
        },
        props: {
          lazy: true, //動態(tài)加載開關(guān)
          lazyLoad(node, resolve) { //動態(tài)加載函數(shù)
            const { level,value,label} = node;
            get("../city/get", {
              parentid: value
            }).then((res) => {
              if (res.state == 'success') {
                var data = res.data;
                data.map(item => {
                  item.leaf = item.child == "0" //leaf如果是true就結(jié)束了,意味著沒有下一級
                  return item;
                })
                resolve(data);
              } else {
                resolve([]);
              }
            })
          }
        }
      }
    },

正常選擇沒問題。一般剛開始的options默認(rèn)的是第一級的數(shù)組

最頭疼的部分,在編輯表單時要顯示出來前面已經(jīng)選擇過的項(xiàng),也就是回顯默認(rèn)值,首先保證v-mode的值是長度是3的數(shù)組(結(jié)合情況,不一定非要是3),一定保證[省,市,區(qū)]順序正確,我昨天大意寫錯了市的id,檢查了一天沒發(fā)現(xiàn)問題。

另外,既然要顯示默認(rèn)值,肯定也要給el-cascader一個默認(rèn)的options,要保證是這種結(jié)構(gòu)

[
	{
	'value':'1',
	'label':'河南',
	'leaf':false,//不帶leaf,選項(xiàng)后面沒有向右的箭頭,下面的自行補(bǔ)充
	'children':[{
					'value':'11',
					'label':'鄭州',
					'children':[
						{
							'value':'111',
							'label':'中原區(qū)'
						},
						{
							'value':'112',
							'label':'二七區(qū)'
						}
					]
				},{
					'value':'12',
					'label':'洛陽'
				}]
	},
	{
	'value':'2',
	'label':'河北',
	}
]

應(yīng)該很清晰了,就是保證所選路徑的上下級和平級數(shù)據(jù)完整,為什么要完整,因?yàn)檫€有下面一個問題。

在options處理完后,默認(rèn)值應(yīng)該就可以正常顯示了。

但是當(dāng)再更換地區(qū)市,選了一下“鄭州”后發(fā)現(xiàn),鄭州的子級重復(fù)了(選“河南”也一樣),這也好理解,說明是鄭州的子級又加載了一遍并且填充到下級的選項(xiàng)組里了,新加載的和默認(rèn)的重復(fù)了。這畢竟不完美,做程序員慢慢有了強(qiáng)迫癥了,扒了扒element的源碼,問題很好解決,只是element官方?jīng)]有簡單明了的說出來。

在處理完options和v-model后,要處理選中項(xiàng)的加載狀態(tài),否則還會重新加載一次。

//上面的代碼自行補(bǔ)充
		this.$nextTick(_=>{
              var node=this.$refs.areas.getCheckedNodes(); //獲取當(dāng)前選中節(jié)點(diǎn)
              if(node&&node[0]&&node[0].pathNodes){//選中節(jié)點(diǎn)的所有父節(jié)點(diǎn)
                for(var i=0;i<node[0].pathNodes.length;i++){
                  node[0].pathNodes[i].loaded=true; //節(jié)點(diǎn)的加載狀態(tài)設(shè)為true,就不會再加載了
                }
              }
            })

至此大功告成

總結(jié)

到此這篇關(guān)于element-ui中el-cascader動態(tài)加載和默認(rèn)值的文章就介紹到這了,更多相關(guān)el-cascader動態(tài)加載和默認(rèn)值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決vue做詳情頁跳轉(zhuǎn)的時候使用created方法 數(shù)據(jù)不會更新問題

    解決vue做詳情頁跳轉(zhuǎn)的時候使用created方法 數(shù)據(jù)不會更新問題

    這篇文章主要介紹了解決vue做詳情頁跳轉(zhuǎn)的時候使用created方法 數(shù)據(jù)不會更新問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 深入詳解Vue中的路由懶加載

    深入詳解Vue中的路由懶加載

    路由懶加載是一種優(yōu)化技術(shù),用于延遲加載應(yīng)用程序中的路由組件,它可以提高初始加載速度并減少資源消耗,特別適用于大型單頁應(yīng)用,下面我們就來看看它的原理與使用吧
    2023-08-08
  • vue組件父子間通信之綜合練習(xí)(聊天室)

    vue組件父子間通信之綜合練習(xí)(聊天室)

    這篇文章主要為大家詳細(xì)介紹了vue組件父子間通信之綜合練習(xí)聊天室制作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Vue出現(xiàn)did you register the component correctly?解決方案

    Vue出現(xiàn)did you register the component 

    這篇文章主要介紹了Vue出現(xiàn)did you register the component correctly?解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Element Notification通知的實(shí)現(xiàn)示例

    Element Notification通知的實(shí)現(xiàn)示例

    這篇文章主要介紹了Element Notification通知的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • vue3中的響應(yīng)式原理-effect

    vue3中的響應(yīng)式原理-effect

    這篇文章主要介紹了vue3中的響應(yīng)式原理-effect,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue項(xiàng)目適配屏幕分辨率與屏幕的縮放適配詳細(xì)教程

    vue項(xiàng)目適配屏幕分辨率與屏幕的縮放適配詳細(xì)教程

    現(xiàn)在很多14寸的筆記本,出廠默認(rèn)就是150%的顯示。導(dǎo)致很多時候我們的項(xiàng)目,自己開發(fā)的時候都是按照100%比例來開發(fā)的,上線了就會發(fā)現(xiàn)這個問題,今天就這個問題給出解決方案,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • vue 進(jìn)階之實(shí)現(xiàn)父子組件間的傳值

    vue 進(jìn)階之實(shí)現(xiàn)父子組件間的傳值

    這篇文章主要介紹了vue 進(jìn)階之實(shí)現(xiàn)父子組件間的傳值,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • Vue 實(shí)現(xiàn)拖動滑塊驗(yàn)證功能(只有css+js沒有后臺驗(yàn)證步驟)

    Vue 實(shí)現(xiàn)拖動滑塊驗(yàn)證功能(只有css+js沒有后臺驗(yàn)證步驟)

    這篇文章給大家介紹了基于vue實(shí)現(xiàn)拖動滑塊驗(yàn)證功能,代碼引用css與js都是線上的,將代碼全部復(fù)制到一個html中可以直接打開,超級簡單,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-08-08
  • 詳解Vue開發(fā)網(wǎng)站seo優(yōu)化方法

    詳解Vue開發(fā)網(wǎng)站seo優(yōu)化方法

    這篇文章主要介紹了Vue開發(fā)網(wǎng)站seo優(yōu)化方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05

最新評論