我们知道在 angular 中数据时双向绑定的;而在 react 中,数据是向一个方向传递:从拥有者到子节点。也就是我们说的单向数据绑定。如果在 react 中要实现双向数据绑定,就得需要借助插件。
React.addons 是为了构建 React 应用而放置的一些有用工具的地方,其中包含了一些有用的插件,其中就有 用于简化用户表单输入数据和组件 state 之间的双向数据绑定——LinkedStateMixin
。要使用这些插件,需要用 react-with-addons.js 替换常规的React.js。
虽然 LinkedStateMixin
大大简化了用户表单输入数据和组件 state 之间的双向数据绑定,但是 Facebook 官网在 v15. 版本之后就不赞成使用了,在 react 官网文档中可以看到这样一段话:
Note: LinkedStateMixin is deprecated as of React v15. The recommendation is to explicitly set the value and change handler, instead of using LinkedStateMixin.
官方文档建议我们还是明确地设置 value 以及 onChange 函数代替 LinkedStateMixin
实现表单的双向数据绑定(react 内部始终是单向数据绑定)。但是作为了学习,这里还是简单的介绍一下利用 LinkedStateMixin
来实现双向数据绑定。
1、使用LinkedStateMixin
前后对比
示例1是一个简单的没有使用LinkedStateMixin
的表单示例:
// 示例1
var NoLink = React.createClass({
getInitialState: function() {
return {message: 'Hello!'};
},
handleChange: function(event) {