Vue.js-封装一个无限树形组件,可折叠子代栏目

element-ui的Tree组件无法在收起来的时候把子栏目也折叠,无法满足需求,所以想自己封装一个。

遇到了一个问题就是,父组件传递给子组件的值是数组里嵌套着对象,直接在子组件里修改数据,预想中的子栏目折叠没有出现,树形组件毫无变化。

尝试了多种方法后,最终得到一个较好的方法,有如下优点:

  1. 页面响应快速,不会等待请求更新数据
  2. 当数据存在时不会重复发送请求

具体做法:

  1. 在created生命周期发送第一次请求
  2. 把请求到的数据存储在vuex里
  3. 子组件里props里的默认值为vuex里的值或者不用设置,增强组件复用性,可不用设置
  4. 父组件里的传递默认值可以设置为vuex里的值
  5. 第一次发送请求时做判断,vuex里是否有值,有的话就调用请求方法,没有就略过,此时组件重新加载data里的默认值会重新生成,直接复用vuex里的值,这样大大提高了用户体验
  6. 用户控制折叠的逻辑封装在树形组件里
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值