vue|vue 组件递归调用
【vue|vue 组件递归调用】实际项目中,除了基本的树结构,有时还需扩展。如下图层级关系的递归调用,红框中的部分为完全递归组件。
文章图片
父级:
template
{{item.name.slice(0,2)}}{{item.name}}{{(item.children&&item.children.length)?item.children.length:0}}
js:
//....不完整代码
import secondtree from './dept/childrenteer.vue'
//....不完整代码
components:{
secondtree
}
//....不完整代码
子级:
{{opendata.name}}
收起{{item.name.slice(0,2)}}
{{item.name}}
{{(item.children&&item.children.length)?item.children.length:0}}
一些重要的废话放到最后:
1:子组件,即需要递归使用的组件,在js中是要声明name(name:"childrentree")。这样子组件在本身就可以直接使用本身。
2:本例从第二层节点才开始使用递归,所以写发有冗余,可按需精简
3:子组件的事件需要按需区分是要发起仅紧挨着的上层事件(this.$emit('unActiveParent'); )还是顶层事件(this.$emit('closetopChildren'); )。可以通过接受的方法名进行区分
4:展开某一节点后,节点子集的顶部,即大括号顶部的话,可以使用:(根据具体场景自行判断是否需要使用$nextTick)
document.getElementById(data.id).scrollIntoView({behavior: "smooth"})
如有问题请指正,如有更简洁的事项方式请留下链接(????)
推荐阅读
- vue-cli|vue-cli 3.x vue.config.js 配置
- 2020-04-07vue中Axios的封装和API接口的管理
- VueX--VUE核心插件
- 动态组件与v-once指令
- vue组件中为何data必须是一个函数()
- 用npm发布一个包的教程并编写一个vue的插件发布
- (六)Component初识组件
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- vuex|vuex 基础结构
- Vue源码分析—响应式原理(二)