国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

vue文件樹組件使用詳解

2024-05-06 15:20:19
字體:
來源:轉載
供稿:網友

本文實例為大家分享了vue文件樹組件的實現方法,供大家參考,具體內容如下

本文主要是分析vue官方倉庫里的文件樹組件[vue github]

demo可以查看 https://codepen.io/shayminsky21/pen/xXwxgm

首先是html模板:

<li>  <div   //文件夾加粗表示   :class="{bold: isFolder}"    //處理單擊事件 打開閉合文件列表               @click="toggle"     //處理雙擊事件 雙擊子文件,子文件屬性變為文件夾                  @dblclick="changeType">     //顯示文件名         {{model.name}}  //若是文件夾的話則顯示[+]來控制文件夾的開關閉合   <span v-if="isFolder">[{{open ? '-' : '+'}}]</span>  </div>  <ul v-show="open" v-if="isFolder">  //利用v-for顯示子文件列表,通過遞歸使用item組件來完成文件樹   <item   class="item"   v-for="model in model.children"   :model="model">   </item>   //增加一個+標記,單擊可以增加子文件   <li class="add" @click="addChild">+</li>  </ul></li>

接下來是組件部分的源碼:

Vue.component('item', { template: '#item-template', props: { model: Object //將文件數據通過props傳入 }, data: function () { return {  open: false  //open表示文件夾閉合狀態 } }, computed: { isFolder: function () {  return this.model.children &&  this.model.children.length } }, //計算對象是否有子節點并且子節點數大于0來判斷是否是文件夾 methods: { toggle: function () {  if (this.isFolder) {  this.open = !this.open  } },    //控制文件夾閉合的方法 單擊觸發改變open changeType: function () {  if (!this.isFolder) {  Vue.set(this.model, 'children', [])  this.addChild()  this.open = true  } }, //雙擊觸發,通過給文件增加子節點來使文件屬性變成文件夾 addChild: function () {  this.model.children.push({  name: 'new stuff'  })  //點擊文件夾里的+節點觸發 為文件夾添加一個新文件 }    }})

所以設計思路就是通過判斷對象是否有子節點來決定是文件夾還是文件,然后通過遞歸復用<item>組件來展示文件樹的效果。

最后是傳入組件的數據格式:

var data = { name: 'My Tree', children: [ { name: 'hello' }, { name: 'wat' }, {  name: 'child folder',  children: [  {   name: 'child folder',   children: [   { name: 'hello' },   { name: 'wat' }   ]  },  { name: 'hello' },  { name: 'wat' },  {   name: 'child folder',   children: [   { name: 'hello' },   { name: 'wat' }   ]  }  ] } ]}

大家可以根據這個基本的結構繼續拓展文件樹的功能和展示效果。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 涟源市| 竹北市| 赞皇县| 寿宁县| 伊宁县| 嘉兴市| 凤城市| 山东省| 肃北| 凌云县| 常熟市| 灵川县| 芮城县| 临沭县| 广宗县| 松溪县| 西峡县| 沅陵县| 尉犁县| 瑞昌市| 上饶县| 霍林郭勒市| 京山县| 金平| 奇台县| 泸西县| 沂南县| 凤凰县| 定南县| 铁岭县| 岳普湖县| 浑源县| 汽车| 富宁县| 龙口市| 德昌县| 潼南县| 台中市| 澄城县| 宁蒗| 阿城市|