vue组件使用name属性来生成递归组件
2024-10-21 04:57:34
先来个简单的数据
1 lists = [{
2 id: 1,
3 title: '第一层',
4 children: [{
5 id: 3,
6 title: '第二层',
7 children: [{
8 id: 4,
9 title: 第三层
10 }]
11 }]
12 },{
13 id: 2,
14 title: '第一层'
15 }]
上面的数据是个很简单的数据,一个数组,嵌套了3层,即id为1为祖,id为3为父,id为4位孙。
创建一个简单的单组件,list.vue,name属性为list
1 <template>
2 <div>
3 <div
4 class="item"
5 v-for="(item, index) in lists"
6 :key="index"
7 >
8 <div class="item-title">
9 {{item.title}}
10 </div>
11 <div v-if="item.children" class="item-children">
12 <!-- 调用自己,将数据传递进去,一定要加判断数据是否存在,以防出bUG -->
13 <!-- 使用组件nama属性list来调用 -->
14 <list :list="item.children"></list>
15 </div>
16 </div>
17 </div>
18 </template>
19
20 <script>
21 export default {
22 // name主要是为了使用递归组件
23 name: 'DetailList',
24 props: {
25 // 数据上方
26 lists: Array
27 }
28 }
渲染结果为:
第一层
第二层
第三层
第一层
好像有点难分,给item-children加个padding-left属性,
如padding-left: .2rem
渲染结果大概是:
第一层
第二层
第三层
第一层
用来做树型数据的列表往往很好用,节省了代码。
最新文章
- 如何利用Cron让django应用定期执行
- codeforces 500B.New Year Permutation 解题报告
- PHP 匹配一个汉字
- xml数据解析调研
- Python进阶07 函数对象
- c# 读取其他程序的ListView内容
- poj 1941 The Sierpinski Fractal 递归
- mac 布置 git仓库服务器
- Qt中addStretch的有趣应用
- Linux查看用户数、登录用户
- ubuntu14.04 下手动安装java jdk
- C++ vector 常用API
- HTML篇(下&#183;)
- Docker镜像的构成__docker commit
- 2PC/3PC到底是啥
- [MySQL 5.6] GTID实现、运维变化及存在的bug
- BOOST ASIO 学习专贴
- Android-Java-了解编译
- jstl foreach 取index
- javascript sleep方法