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

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

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

el-tree 單選功能

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

el-tree 單選

html 代碼

*** 注: load 和 lazy 屬性不是需要的粘貼時請刪除。(只有需要懶加載的樹才需要,關(guān)于怎樣構(gòu)建懶加載樹以后的文章會講到)***
屬性介紹:
1::props="props" // 下面的 data 代碼中有說明。
2:node-key="id" // 這個屬性是用來標記 tree 的節(jié)點的 實現(xiàn) checkbox節(jié)點操控 必須搭配 node-key 使用,這里的 id 是根據(jù)數(shù)據(jù)里面的唯一字段定義的,如果你的數(shù)據(jù)里唯一字段為 isId 那就設(shè)置為 node-key="isId"。
3::expand-no-click-node="true" // 為點擊節(jié)點時是否可展開下一級別,true=展開、false=不展開。
4:ref="tree" // 定義 ref ,方便操作 dom 節(jié)點 ,名字自定義。
5:show-checkbox // 顯示 checkbox 多選框。
6::check-strictly="true" // 解除父子節(jié)點的關(guān)聯(lián),true=解除、false=綁定。
7:@check="checkClick" // checkbox 背點擊的時候出發(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', // 用來定義 tree 上展示的字段,根據(jù)自己用到數(shù)據(jù),綁定需要的字段名稱。
        children:'childNodes', // tree 每一級別節(jié)點,子級數(shù)據(jù),保存的字段位置,根據(jù)自己的數(shù)據(jù),定義字段名稱。
        isLeaf:'chlid', // 只有需要懶加載 tree 的時候用到,是用來確定時候為最后一級別的節(jié)點,這樣該節(jié)點被點出來的時候,就不會提示還有下一級別的三角符號 *注:這里復(fù)制的時候不要帶上這個屬性,至于如何時候后面的文章講到懶加載樹的時候會提到。
        id:'id' // 節(jié)點綁定的 id 要和上面 html 標簽中的 node-key="id" 屬性設(shè)置的值要對應(yīng)。
      }
    }
  }

事件方法部分

*** 注:下面方法中的 this.$bus.$emit() 是用來組件傳遞參數(shù)的。使用方式會在文章最下面提到。***
 methods:{
    // 這個方法默認為兩個參數(shù),第一個參數(shù)為選中的 checkbox 所在的節(jié)點數(shù)據(jù),第二參數(shù)是目前選中狀態(tài)的集合之類的一些數(shù)組集合,因為是單選這里不需要這個參數(shù)。
   checkClick(data){
     // 先默認為多選模式, 獲取目前所有被選中 checkbox 的集合 這里的集合是每個節(jié)點的數(shù)據(jù)。
     let getNode = this.$refs.tree.getCheckedNodes();
     // 判斷 getNode 長度是否大于0,因為這里用到了組件之間的傳值了所有進行了判斷,如果小于0,傳遞一個空的數(shù)據(jù)過去。(大于0:代表tree中有至少有一個checkbox被選中。 小于0:代表tree中沒有一個checkbox被選中)
     if (getNode.length > 0) {
       // 循環(huán) getNode 判斷如果當前選中 checkbox 中的id 與 getNode 數(shù)組中有相同值的 id 的一項,那么就通過 setChecked() 方法設(shè)置這個一項被選中,其他像項則通過 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 的組件使用的話,組件是捕獲不到傳遞信息的(這種情況就需要狀態(tài)層或者緩存來傳遞參數(shù)了,以后的文章講到),bus 中有三種方法:

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

  • vue獲取當前點擊的元素并傳值的實例

    vue獲取當前點擊的元素并傳值的實例

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

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

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

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

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

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

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

    Vue使用Element-UI實現(xiàn)分頁效果全過程

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

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

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

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

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

    vue3中的createApp分析

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

    vue-cli擴展多模塊打包的示例代碼

    本篇文章主要介紹了vue-cli擴展多模塊打包的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    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

最新評論