搞不懂“单向数据流”

2018-08-28 15:27:53 +08:00
 linxiaoziruo

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

1062 次点击
所在节点    问与答
2 条回复
morningtzh
2018-08-28 18:49:09 +08:00
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
2018-08-28 21:55:02 +08:00
thanks!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/483972

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX