单向数据绑定和双向数据绑定的优缺点,适合什么场景?

经常看见在vue或者angular的介绍里说自己的特色是双向数据绑定,而在看react的介绍中,说自己的优势和特色是单向数据绑定。 这两个截然不同的机制,为什么又都能自圆其说呢?在同一个时代里怎么建立统一的理解?还是说两种机制有各自适合的最佳场景?
关注者
251
被浏览
9800

6 个回答

对于非UI控件来说,不存在双向,只有单向。只有UI控件才有双向的问题。


单向绑定使得数据流也是单向的,对于复杂应用来说这是实施统一的状态管理(如redux)的前提。

双向绑定在一些需要实时反应用户输入的场合会非常方便(比如多级联动菜单)。但通常认为复杂应用中这种便利比不上引入状态管理带来的优势。

注意,Vue 虽然通过 v-model 支持双向绑定,但是如果引入了类似redux的vuex,就无法同时使用 v-model。参见 github.com/vuejs/vuex/b
两者并不互斥,实际上,在ng2中你可以非常方便的同时使用两者。全局性数据流使用单向,好跟踪。局部性数据流使用双向,简单。
为什么?