React中怎样实现双向数据绑定?
import React, {Component} from \u0026#39;react\u0026#39;class Hello extends Component { constructor(props) { super(props) this.state = { value: \u0026#39;\u0026#39; } } handleInput = _event =\u0026gt; { let event = _event let elem = event.target let value = https://www.zhihu.com/api/v4/questions/42879223/elem.value if(elem.attributes.twoWay != null){ let attr = elem.attributes.twoWay.value this.setState(state =/u0026gt; state = value) } } render() { return ( /u0026lt;div/u0026gt; /u0026lt;input onInput={this.handleInput} is twoWay={/u0026#39;value/u0026#39;} /u0026gt; /u0026lt;p/u0026gt;{this.state.value}/u0026lt;/p/u0026gt; /u0026lt;/div/u0026gt; ) }}export default Hello;我们把state这个名字换一下:import React, {Component} from \u0026#39;react\u0026#39;class Hello extends Component { constructor(props) { super(props) this.viewModel = { value: \u0026#39;\u0026#39; } } handleInput = _event =\u0026gt; { let event = _event let elem = event.target let value = https://www.zhihu.com/api/v4/questions/42879223/elem.value if(elem.attributes.twoWay != null){ let attr = elem.dataset.twoway.value this.setViewModel(viewModel =/u0026gt; viewModel = value) } } render() { return ( /u0026lt;div/u0026gt; /u0026lt;input onInput={this.handleInput} data-twoway="value" /\u0026gt; \u0026lt;p\u0026gt;{this.state.value}\u0026lt;/p\u0026gt; \u0026lt;/div\u0026gt; ) }}export default Hello;而常见的MVVM是这么实现的:let vm = { _data: "", get data() { return this._data }, set data(value) { this._data = https://www.zhihu.com/api/v4/questions/42879223/value notify() // 通知View层更新数据 }}MVVM双向绑定工业界用了十年,现在跳出来一群人说双向绑定不好,状态容易乱,我们要单向数据流云云,然后大喊xx才双向绑定
且不说这些人明白不明白MVVM的精髓,MVVM双向绑定的重量级应用比这些人打过的嘴炮都多,到底谁才是xx?
■网友
不建议如果坚持,请看Two-Way Binding Helpers
■网友
可以试试 Mota,它能给 React 带来类似 ng、vue 的双向绑定的能力
侯锋:在 React 工程中利用 Mota 编写面向对象的业务模型 【React中怎样实现双向数据绑定?】
■网友
http://reactjs.cn/react/docs/thinking-in-react.html最后面的添加反向数据流
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 北京22家市属医院均开展安检基本实现重点区域安检措施全覆盖
- 长江流域渔民退捕“上岸”实现扩产新致富
- 实现“甜蜜计划”,这对中哈跨国夫妻好甜
- 北京地铁11号线西段三座车站提前实现主体结构封顶
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
