搞不懂“单向数据流”
发布于 6 年前 作者 linxiaoziruo 6429 次浏览 来自 问答

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

10 回复

不是“视图的状态”,而是应用的状态(组件的状态)

@justjavac 什么是组件的状态,状态这个词云里雾里的。具体指什么东西呢?是组件的某个属性,还是某个函数?

状态就是数据

状态听起来抽象。

举个例子: 一个弹窗组件的状态有: 显示隐藏

抽象成数据

state = {
  visible: true // 弹窗是否可见
}

然后 View (视图) = fn(state)

由状态改变视图,这是单向的,视图发生变化也不会改变状态

@axetroy 我也是刚开始学React,不知道是不是和vue里面的单向数据绑定一个意思

@minjihao vue里组件间数据是单向的, v-model指令是双向的

@yinxin630 知道啊,我是说vue里面的单向数据绑定跟React中的“单向数据流”比较

@minjihao vue里可没有"单向"数据绑定

单向数据流,就是父组件传递数据给子组件。子组件数据改变不会原路响应父组件,而是通过发消息的方式向上传递。这种限制也是为了避免双向流动导致逻辑不清,比如难以追踪到底是哪里对数据进行操作。至于视图的状态,就是其中的数据的一种表达。

来自✨ Node.js开源项目精选

界面发消息改状态 状态同步到界面

回到顶部