React 遵循从上到下的数据流向,即为单向数据流;
而提到双向数据绑定,大家想到的可能会是 Vue 框架,因为 Vue 使用的是 MVVM 设计模式,其核心思想就是使用 Viewmodel 把 view 和 model 结合起来的一个双向数据绑定;
和 Vue 相比 React 并没有提供向 v-model 这样的指令来实现文本框的数据流双向绑定,因为react的设计思路就是单向数据流,所以我们需要借助 onChange 和 setState 来实现一个双向的数据流,当数据发生变化的时候,用户界面发生相应的变化,双向数据绑定,带来双向数据流;
虽然 Vue 有双向绑定 v-model,但是 Vue 和 React 父子组件直接传递数据,仍然还是遵循单向数据流的,父组件可以向子组件传递 props,但是子组件不能修改父组件传递过来的 props,子组件只能通过事件在父组件进行数据更改。