zdy1988 / vue-jstree

A Tree Plugin For Vue2.0+
http://zdy1988.github.io/vue-jstree
629 stars 195 forks source link

咨询两个问题 #44

Open yzhang921 opened 6 years ago

yzhang921 commented 6 years ago

我现在有个系统在做从angularjs迁移vue的工作, 里面用到了jstree, 不过用angularjs进行了封装, 原有的jstree功能都继承过来了, 包含右键菜单, 数据转换, 所有事件与API. 在迁移VueJS的时候本来想找找看有没有类似angularjs现成的jstree组件. 发现了你的项目, 第一眼从api和sample中的数据结构/样式, 差点以为是原生jstree的封装. 我有两点疑问请教一下:

  1. 我是刚开始用Vue还不太熟练, Jstree发展了很多年了, 功能和稳定度都已经很成熟了, 为什么作者当初没有选择对原有jstree进行封装, 而是自己重新实现一遍, 这样很多jstree原有的功能都丢失了, 比如:右键菜单, 其他的还没细看

  2. 原有的jstree能够直接处理下面这种父子节点关系声明式的数据, 在vue-jstree里面是要自己处理成层级关系的数据才能用吗

    'data' : [
       { "id" : "ajson1", "parent" : "#", "text" : "Simple root node" },
       { "id" : "ajson2", "parent" : "#", "text" : "Root node 2" },
       { "id" : "ajson3", "parent" : "ajson2", "text" : "Child 1" },
       { "id" : "ajson4", "parent" : "ajson2", "text" : "Child 2" },
    ]

    期待回答, 谢谢

zdy1988 commented 6 years ago

Hi , 你好

  1. 开发这个组件之初是我需要一个树组件,我没找到我喜欢的开源组件,又单纯喜欢jstree的样式,就自己开发了,所以这里只是单单借用了jstree的样式。

我个人认为基于 vue mvvm 的思想去操作树节点的各个状态非常简单,根本不需要那么多api,jstree api复杂,又是基于jquery的,再用vue去封装,感觉很不伦不类!

2.既然你已经有了一个树结构的数据,至于怎么初始化就是你自己做,还是组件帮你做,我觉得这个不是问题

yzhang921 commented 6 years ago

谢谢, 我明白你的意图了. 一个小建议, 你的css class定义tree定义太容易和其他的UI样式冲突了, 建议tree和item里面的style都设置为scoped, 然后item里面也引用一下样式. 要接受建议我可以发个PR或者你自己改下.