欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

element UI 中的 el-tree 實(shí)現(xiàn) checkbox 單選框及 bus 傳遞參數(shù)功能

 更新時(shí)間:2022年09月23日 16:45:14   作者:ZhuDi.  
在日常項(xiàng)目開(kāi)發(fā)中,會(huì)經(jīng)常遇到,樹(shù)形結(jié)構(gòu)的查詢(xún)方式,為了快速方便開(kāi)發(fā),常常會(huì)使用到快捷的ui組件去快速搭樹(shù)形結(jié)構(gòu),這里我用的是 element ui 中的 el-tree,對(duì)element UI 中的 el-tree 實(shí)現(xiàn) checkbox 單選框及 bus 傳遞參數(shù)的方法感興趣的朋友跟隨小編一起看看吧

el-tree 單選功能

在日常項(xiàng)目開(kāi)發(fā)中,會(huì)經(jīng)常遇到,樹(shù)形結(jié)構(gòu)的查詢(xún)方式,為了快速方便開(kāi)發(fā),常常會(huì)使用到快捷的ui組件去快速搭樹(shù)形結(jié)構(gòu),這里我用的是 element ui 中的 el-tree 。第一次接觸這種功能的時(shí)候也是各種網(wǎng)站查詢(xún),雖然也都能實(shí)現(xiàn)功能,但是都會(huì)有一些小問(wèn)題,就很難受,那么我們廢話(huà)不多說(shuō)(好像也說(shuō)了不少呢??),直接上效果。

el-tree 單選

html 代碼

*** 注: load 和 lazy 屬性不是需要的粘貼時(shí)請(qǐng)刪除。(只有需要懶加載的樹(shù)才需要,關(guān)于怎樣構(gòu)建懶加載樹(shù)以后的文章會(huì)講到)***
屬性介紹:
1::props="props" // 下面的 data 代碼中有說(shuō)明。
2:node-key="id" // 這個(gè)屬性是用來(lái)標(biāo)記 tree 的節(jié)點(diǎn)的 實(shí)現(xiàn) checkbox節(jié)點(diǎn)操控 必須搭配 node-key 使用,這里的 id 是根據(jù)數(shù)據(jù)里面的唯一字段定義的,如果你的數(shù)據(jù)里唯一字段為 isId 那就設(shè)置為 node-key="isId"。
3::expand-no-click-node="true" // 為點(diǎn)擊節(jié)點(diǎn)時(shí)是否可展開(kāi)下一級(jí)別,true=展開(kāi)、false=不展開(kāi)。
4:ref="tree" // 定義 ref ,方便操作 dom 節(jié)點(diǎn) ,名字自定義。
5:show-checkbox // 顯示 checkbox 多選框。
6::check-strictly="true" // 解除父子節(jié)點(diǎn)的關(guān)聯(lián),true=解除、false=綁定。
7:@check="checkClick" // checkbox 背點(diǎn)擊的時(shí)候出發(fā)的事件。
 <el-tree
   :props="props"
   :load="loadNode"
   lazy
   node-key="id"
   :expand-no-click-node="true"
   ref="tree"
   show-checkbox
   :check-strictly="true"
   @check="checkClick"
 >
 </el-tree>

data 部分

 export default {
  data(){
    return{
      props:{
        label:'text', // 用來(lái)定義 tree 上展示的字段,根據(jù)自己用到數(shù)據(jù),綁定需要的字段名稱(chēng)。
        children:'childNodes', // tree 每一級(jí)別節(jié)點(diǎn),子級(jí)數(shù)據(jù),保存的字段位置,根據(jù)自己的數(shù)據(jù),定義字段名稱(chēng)。
        isLeaf:'chlid', // 只有需要懶加載 tree 的時(shí)候用到,是用來(lái)確定時(shí)候?yàn)樽詈笠患?jí)別的節(jié)點(diǎn),這樣該節(jié)點(diǎn)被點(diǎn)出來(lái)的時(shí)候,就不會(huì)提示還有下一級(jí)別的三角符號(hào) *注:這里復(fù)制的時(shí)候不要帶上這個(gè)屬性,至于如何時(shí)候后面的文章講到懶加載樹(shù)的時(shí)候會(huì)提到。
        id:'id' // 節(jié)點(diǎn)綁定的 id 要和上面 html 標(biāo)簽中的 node-key="id" 屬性設(shè)置的值要對(duì)應(yīng)。
      }
    }
  }

事件方法部分

*** 注:下面方法中的 this.$bus.$emit() 是用來(lái)組件傳遞參數(shù)的。使用方式會(huì)在文章最下面提到。***
 methods:{
    // 這個(gè)方法默認(rèn)為兩個(gè)參數(shù),第一個(gè)參數(shù)為選中的 checkbox 所在的節(jié)點(diǎn)數(shù)據(jù),第二參數(shù)是目前選中狀態(tài)的集合之類(lèi)的一些數(shù)組集合,因?yàn)槭菃芜x這里不需要這個(gè)參數(shù)。
   checkClick(data){
     // 先默認(rèn)為多選模式, 獲取目前所有被選中 checkbox 的集合 這里的集合是每個(gè)節(jié)點(diǎn)的數(shù)據(jù)。
     let getNode = this.$refs.tree.getCheckedNodes();
     // 判斷 getNode 長(zhǎng)度是否大于0,因?yàn)檫@里用到了組件之間的傳值了所有進(jìn)行了判斷,如果小于0,傳遞一個(gè)空的數(shù)據(jù)過(guò)去。(大于0:代表tree中有至少有一個(gè)checkbox被選中。 小于0:代表tree中沒(méi)有一個(gè)checkbox被選中)
     if (getNode.length > 0) {
       // 循環(huán) getNode 判斷如果當(dāng)前選中 checkbox 中的id 與 getNode 數(shù)組中有相同值的 id 的一項(xiàng),那么就通過(guò) setChecked() 方法設(shè)置這個(gè)一項(xiàng)被選中,其他像項(xiàng)則通過(guò) setChecked() 取消選定
       getNode.forEach(item => {
         if (data.id == item.id) {
           this.$refs.tree.setChecked(item.id , true);
           this.$bus.$emit('otherCheck' , item.id)
         } else {
           this.$refs.tree.setChecked(item.id , false);
         }
       } )
     } else {
       this.$bus.$emit('otherCheck' , '')
     }
   }
 }

**

bus 傳參方法的使用方式*

bus 方式傳遞方式多用于 vuex 狀態(tài)層不復(fù)雜的情況,bus只能使用在已存在的組件之間的傳遞參數(shù),如果是給 v-if 的組件使用的話(huà),組件是捕獲不到傳遞信息的(這種情況就需要狀態(tài)層或者緩存來(lái)傳遞參數(shù)了,以后的文章講到),bus 中有三種方法:

$emit: 傳遞參數(shù);  $on: 接收參數(shù);  $off: 解除監(jiān)聽(tīng)傳參

1、在 vue 項(xiàng)目中使用 bus 傳遞參數(shù),需要在 main.js 中進(jìn)行全局配置

 *** main.js ***
 let bus = new Vue()
 Vue.prototype.$bus = bus

2、在主動(dòng)傳遞參數(shù)組件中如何傳遞參數(shù)

*** 注:
1、name:自己定義的名字隨便起就行,但是注意在被傳遞組件中要用相同的名字去接收,解除監(jiān)聽(tīng)傳參也是同樣的名字的解除。
2、data:這里的參數(shù)data可以是對(duì)象、字符串、數(shù)字。參數(shù)也可以穿多個(gè),例如 :this.$bus.$emit('name',a,b,c,d);不過(guò)通常情況下,都是出傳一個(gè) data 對(duì)象即可,這樣方便取值和查看。
 ***
this.$bus.$emit('name',data)

3、被傳遞參數(shù)組件如何接收值

單個(gè)對(duì)象、字符串、數(shù)字等方式接收參數(shù) (***推薦***)
this.$bus.$on('name',res => {
   console.log(res)
})
多個(gè)參數(shù)接收方參數(shù) (不推薦)
this.$bus.$on('name'(a,b,c,d) => {
   console.log(a,b,c,d)
})

4、解除監(jiān)聽(tīng)傳參

// 可以在組件銷(xiāo)毀前 解除監(jiān)聽(tīng)
beforeDestroy () {
  this.$bus.$off('name');
},

到此這篇關(guān)于element UI 中的 el-tree 實(shí)現(xiàn) checkbox 單選框及 bus 傳遞參數(shù)的方法的文章就介紹到這了,更多相關(guān)element UI el-tree單選內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue獲取當(dāng)前點(diǎn)擊的元素并傳值的實(shí)例

    vue獲取當(dāng)前點(diǎn)擊的元素并傳值的實(shí)例

    下面小編就為大家分享一篇vue獲取當(dāng)前點(diǎn)擊的元素并傳值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • vue3中使用v-model實(shí)現(xiàn)父子組件數(shù)據(jù)同步的三種方案

    vue3中使用v-model實(shí)現(xiàn)父子組件數(shù)據(jù)同步的三種方案

    這篇文章主要介紹了vue3中使用v-model實(shí)現(xiàn)父子組件數(shù)據(jù)同步的三種方案,如果只有一個(gè)匿名v-model的傳遞的話(huà),可以使用vue3.3新添加的編譯宏,defineModel來(lái)使用,每種方案結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • vue動(dòng)態(tài)刪除從數(shù)據(jù)庫(kù)倒入列表的某一條方法

    vue動(dòng)態(tài)刪除從數(shù)據(jù)庫(kù)倒入列表的某一條方法

    今天小編就為大家分享一篇vue動(dòng)態(tài)刪除從數(shù)據(jù)庫(kù)倒入列表的某一條方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • vue使用Element el-upload 組件踩坑記

    vue使用Element el-upload 組件踩坑記

    這篇文章主要介紹了vue使用Element el-upload 組件的相關(guān)知識(shí),在研究學(xué)習(xí)基本使用的過(guò)程中遇到很多問(wèn)題,今天特此把問(wèn)題記錄分享到腳本之家平臺(tái),需要的朋友可以參考下
    2021-09-09
  • Vue使用Element-UI實(shí)現(xiàn)分頁(yè)效果全過(guò)程

    Vue使用Element-UI實(shí)現(xiàn)分頁(yè)效果全過(guò)程

    element-ui官網(wǎng)上有分頁(yè)實(shí)現(xiàn)的功能,簡(jiǎn)單方便又好用,也有很多分頁(yè)的樣式,你可以根據(jù)需要去選擇自己想要的樣式,下面這篇文章主要給大家介紹了關(guān)于Vue使用Element-UI實(shí)現(xiàn)分頁(yè)效果的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • vue3響應(yīng)式對(duì)象的api超全實(shí)例詳解

    vue3響應(yīng)式對(duì)象的api超全實(shí)例詳解

    可以把數(shù)據(jù)變成響應(yīng)式api的方法叫做響應(yīng)式api,下面這篇文章主要給大家介紹了關(guān)于vue3響應(yīng)式對(duì)象api的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • vant-ui組件庫(kù)中如何修改NavBar導(dǎo)航欄的樣式

    vant-ui組件庫(kù)中如何修改NavBar導(dǎo)航欄的樣式

    這篇文章主要介紹了vant-ui組件庫(kù)中如何修改NavBar導(dǎo)航欄的樣式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue3中的createApp分析

    vue3中的createApp分析

    這篇文章主要介紹了vue3中的createApp分析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • vue-cli擴(kuò)展多模塊打包的示例代碼

    vue-cli擴(kuò)展多模塊打包的示例代碼

    本篇文章主要介紹了vue-cli擴(kuò)展多模塊打包的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • html中創(chuàng)建并調(diào)用vue組件的幾種方法匯總

    html中創(chuàng)建并調(diào)用vue組件的幾種方法匯總

    這篇文章主要介紹了html中創(chuàng)建并調(diào)用vue組件的幾種方法匯總,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-11-11

最新評(píng)論