我觉得吧,这不是好问题,当然你别不开心哈;
这个问题基本就是你要做的需求,而不是一个值得探讨的问题,基本等于是告诉社区小伙伴:我有个活,你们帮我干了吧;
你需要有自己的思考,甚至一个不成熟的方案之后,然后带着思考来问,提问应该是探讨式的,不应该是索取式的,这样我相信会有很多人愿意帮你。
比如你可以问:移动端显示树形列表组件,我应该怎么优雅的管理访问路径?是路由地址记录信息然后每次都是刷新路由?有其他方式吗?
那我可能回答:
可以使用『栈』一个数组 stack 来管理访问路径,有哪些操作呢:
- 访问节点:将访问的节点对象 stack.push(node) 进这个数组中
- 返回上一级:就是 stack.pop()
- 点击路径面包屑的某一个点:就是找到这个点的 index, 然后 stack.splice(index + 1)
接下来就简单了:
- 当前节点列表的爸爸是谁呢?显然是:currentNode = stack[stack.length - 1]
- 每次设置 currentNode 的时候,都是一个获取当前子节点列表,渲染页面的时机,对吧?
- 怎么同步 checkbox 状态呢?显然,每个节点有 checked 属性,如果选中节点 this.currentNode.checked = true; 然后,循环更新所有子节点的 checked 属性;
- 当然,这里还有个细节:子节点的子节点是否也要设置 checked = true ? 如果需要,那就要递归的去更新下去,如果不需要,那就直接循环子节点即可;
- 能否增加一个属性,isDeep ? 来控制是否需要深层 check?
- 还有好多,慢慢想喽
希望对你有帮助
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…