react 的虚拟树深度优先对比我清楚,局部更新渲染我也清楚,MVVM 模式我也清楚。但就是搞不懂什么叫“单向数据流”?什么叫“视图的状态”?
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 的状态。 |
2
linxiaoziruo OP thanks!
|