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

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 那就設置為 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é)點被點出來的時候,就不會提示還有下一級別的三角符號 *注:這里復制的時候不要帶上這個屬性,至于如何時候后面的文章講到懶加載樹的時候會提到。
        id:'id' // 節(jié)點綁定的 id 要和上面 html 標簽中的 node-key="id" 屬性設置的值要對應。
      }
    }
  }

事件方法部分

*** 注:下面方法中的 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() 方法設置這個一項被選中,其他像項則通過 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)層不復雜的情況,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日期組件 支持vue1.0和2.0

    vue日期組件 支持vue1.0和2.0

    這篇文章主要為大家詳細介紹了vue日期組件,支持vue1.0和2.0,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 詳解在vue-test-utils中mock全局對象

    詳解在vue-test-utils中mock全局對象

    這篇文章主要介紹了詳解在vue-test-utils中mock全局對象,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 更強大的vue ssr實現(xiàn)預取數(shù)據(jù)的方式

    更強大的vue ssr實現(xiàn)預取數(shù)據(jù)的方式

    這篇文章主要介紹了更強大的 vue ssr 預取數(shù)據(jù)的方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • vue使用vue-cli快速創(chuàng)建工程

    vue使用vue-cli快速創(chuàng)建工程

    這篇文章主要介紹了vue使用vue-cli快速創(chuàng)建工程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • vue中v-if和v-for一起使用的弊端及解決辦法(同時使用 v-if 和 v-for不推薦)

    vue中v-if和v-for一起使用的弊端及解決辦法(同時使用 v-if 和 v-for不

    當 v-if 和 v-for 同時存在于一個元素上的時候,v-if 會首先被執(zhí)行,這篇文章主要介紹了vue中v-if和v-for一起使用的弊端及解決辦法,需要的朋友可以參考下
    2023-07-07
  • SpringBoot+Vue項目線上買菜系統(tǒng)源碼展示

    SpringBoot+Vue項目線上買菜系統(tǒng)源碼展示

    本線上買菜系統(tǒng)采用的數(shù)據(jù)庫是Mysql,使用springboot框架開發(fā)。在設計過程中,充分保證了系統(tǒng)代碼的良好可讀性、實用性、易擴展性、通用性、便于后期維護、操作方便以及頁面簡潔等特點,需要的朋友可以參考下
    2022-08-08
  • vue-print-nb實現(xiàn)頁面打印功能實例(含分頁打印)

    vue-print-nb實現(xiàn)頁面打印功能實例(含分頁打印)

    在項目中,有時需要打印頁面的表格,在網(wǎng)上找了一個打印組件vue-print-nb,用了還不錯,所以下面這篇文章主要給大家介紹了關(guān)于vue-print-nb實現(xiàn)頁面打印功能的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • vue日歷/日程提醒/html5本地緩存功能

    vue日歷/日程提醒/html5本地緩存功能

    這篇文章主要介紹了vue日歷/日程提醒/html5本地緩存功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Vue中el-form標簽中的自定義el-select下拉框標簽功能

    Vue中el-form標簽中的自定義el-select下拉框標簽功能

    這篇文章主要介紹了Vue中el-form標簽中的自定義el-select下拉框標簽功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Vue金融數(shù)字格式化(并保留小數(shù))數(shù)字滾動效果實現(xiàn)

    Vue金融數(shù)字格式化(并保留小數(shù))數(shù)字滾動效果實現(xiàn)

    這篇文章主要介紹了Vue金融數(shù)字格式化(并保留小數(shù)) 數(shù)字滾動效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04

最新評論

东乌| 海淀区| 闵行区| 南皮县| 万载县| 康马县| 洪江市| 叙永县| 晋州市| 武汉市| 镇远县| 扎赉特旗| 光泽县| 盐边县| 阜南县| 新和县| 榆树市| 宁乡县| 丰顺县| 台南县| 桦川县| 崇明县| 泽州县| 财经| 莆田市| 尉氏县| 吉水县| 东莞市| 沧州市| 娱乐| 巩义市| 怀集县| 新沂市| 河间市| 天长市| 桐庐县| 临夏市| 米泉市| 南宁市| 黔东| 广昌县|