V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
linxiaoziruo
V2EX  ›  问与答

搞不懂“单向数据流”

  •  
  •   linxiaoziruo · 2018-08-28 15:27:53 +08:00 · 1118 次点击
    这是一个创建于 2308 天前的主题,其中的信息可能已经有所发展或是发生改变。

    react 的虚拟树深度优先对比我清楚,局部更新渲染我也清楚,MVVM 模式我也清楚。但就是搞不懂什么叫“单向数据流”?什么叫“视图的状态”?

    morningtzh
        1
    morningtzh  
       2018-08-28 18:49:09 +08:00   ❤️ 1
    emmm 故事是这样的。
    从前有个节点叫 A,他有两个儿子 AA 和 AB。

    在 react 环境下 A 能把东西(值或者函数)通过 props 传给 AA 或 AB,但是 AA 无法将值传回给他爸爸。这就叫单向传输。同样道理,AA 也无法将自己的状态告诉他的小姐姐 AB。

    那他爸爸自身有很多状态的,比如有个 state 叫『菜烧好了』,A 把 state 『菜烧好了』 通过 props 传给 AA 和 AB,当 A 状态改变时,『菜烧好了』从 false 变为了 true,AA 和 AB 也能知道了。但是 AA 和 AB 没有途径将『吃饱了』这个状态传回给他爸爸。

    当然有解决办法是 A 传一个函数『 func 儿砸说吃好了()』传给 AA 和 AB,AA 吃好了之后就调用『 func 儿砸说吃好了()』函数告诉他爸爸,他爸爸才能知道。但这样呢 就不算『数据流』了。

    ps 上面『菜烧好了』就是 A 的状态。
    linxiaoziruo
        2
    linxiaoziruo  
    OP
       2018-08-28 21:55:02 +08:00
    thanks!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2925 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:00 · PVG 21:00 · LAX 05:00 · JFK 08:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.