搞不懂“单向数据流”
react 的虚拟树深度优先对比我清楚,局部更新渲染我也清楚,MVVM 模式我也清楚。但就是搞不懂什么叫“单向数据流”?什么叫“视图的状态”?
10 回复
不是“视图的状态”,而是应用的状态(组件的状态)
@justjavac 什么是组件的状态,状态这个词云里雾里的。具体指什么东西呢?是组件的某个属性,还是某个函数?
状态就是数据
状态听起来抽象。
举个例子: 一个弹窗组件的状态有: 显示和隐藏
抽象成数据
state = {
visible: true // 弹窗是否可见
}
然后 View (视图) = fn(state)
由状态改变视图,这是单向的,视图发生变化也不会改变状态
@axetroy 我也是刚开始学React,不知道是不是和vue里面的单向数据绑定一个意思
@yinxin630 知道啊,我是说vue里面的单向数据绑定跟React中的“单向数据流”比较
单向数据流,就是父组件传递数据给子组件。子组件数据改变不会原路响应父组件,而是通过发消息的方式向上传递。这种限制也是为了避免双向流动导致逻辑不清,比如难以追踪到底是哪里对数据进行操作。至于视图的状态,就是其中的数据的一种表达。
来自✨ Node.js开源项目精选✨
界面发消息改状态 状态同步到界面