V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
daiwenzh5
V2EX  ›  Vue.js

vuex 更新多级数据,如何使用比较好?

  •  1
     
  •   daiwenzh5 · 2020-05-07 00:29:56 +08:00 · 2613 次点击
    这是一个创建于 1666 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如说一个评论功能,可以在文章的评论中进行评论,即主评论中包含子评论,

    • 文章
      • 评论
        • 子评论

    这样三级的数据,甚至千层饼,是否要将文章列表放置在 vuex 中,

    • 1:若不放在 vuex 中,新增评论等其他操作,数据如何直接同步渲染外层的视图;
    • 2:若放在 vuex 中,更新或新增一个子评论,怎么设计比较好?传数组索引吗?一层层传递?
    • 3:vuex 中放置文章列表,更新数据是替换,还是直接追加?

    想了解一波解决方案,权衡一下,大家不管从哪个角度切入,都说说自己的看法啊。

    8 条回复    2020-05-11 19:27:03 +08:00
    optional
        1
    optional  
       2020-05-07 01:54:19 +08:00 via iPhone
    把 mutation 方法一直往下传。把更新操作或者 diff 放事件里一直往上拋。
    不管怎么做,最后解决方案本质上都是类似于 vuex 的。
    ccraohng
        2
    ccraohng  
       2020-05-07 07:34:44 +08:00 via Android
    平级放,渲染前转为树性结构
    huijiewei
        3
    huijiewei  
       2020-05-07 08:53:11 +08:00
    vuex 只放全局的

    其他的用组件通讯
    tikazyq
        4
    tikazyq  
       2020-05-07 10:23:36 +08:00
    1. 你这种多级结构,最好用 vuex ;
    2. 直接在 vuex 里用 mutations 操作就可以了,不用考虑复杂了;
    3. 增删改查,push/splice,用好了就没什么难的了

    总体感觉楼主的基础不是很牢哟,还需要多学习一下
    guolaopi
        5
    guolaopi  
       2020-05-07 10:25:46 +08:00
    建议可以参考下文件树递归那种方式。
    doommm
        6
    doommm  
       2020-05-07 12:09:13 +08:00 via Android
    normalize,就是把结构拍平, redux 的文档里有提到,可以去看看
    daiwenzh5
        8
    daiwenzh5  
    OP
       2020-05-11 19:27:03 +08:00
    @doommm 最近没时间搞这个, 粗看了一下,好像是这玩意儿,被你说的点子上去了,感谢👍👍👍
    @tikazyq 直接用我也会啊,就是写出来丑陋无比的一坨,不过我确实是野生的前端(搞后端的),想了解的就是这个规范的设计结构,我觉得东西实现可能有很多,但是符合规范易于拓展才是好的代码。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3609 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 04:33 · PVG 12:33 · LAX 20:33 · JFK 23:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.