單向數據綁定和雙向數據綁定的優缺點,適合什麼場景?

經常看見在vue或者angular的介紹里說自己的特色是雙向數據綁定,而在看react的介紹中,說自己的優勢和特色是單向數據綁定。 這兩個截然不同的機制,為什麼又都能自圓其說呢?在同一個時代里怎麼建立統一的理解?還是說兩種機制有各自適合的最佳場景?


對於非UI控制項來說,不存在雙向,只有單向。只有UI控制項才有雙向的問題。

單向綁定使得數據流也是單向的,對於複雜應用來說這是實施統一的狀態管理(如redux)的前提。

雙向綁定在一些需要實時反應用戶輸入的場合會非常方便(比如多級聯動菜單)。但通常認為複雜應用中這種便利比不上引入狀態管理帶來的優勢。

注意,Vue 雖然通過 v-model 支持雙向綁定,但是如果引入了類似redux的vuex,就無法同時使用 v-model。參見 https://github.com/vuejs/vuex/blob/master/docs/zh-cn/forms.md


先描述一下 ng 跟 vue 中使用雙向綁定的場景。

如賀老 @賀師俊 所言,只有 UI控制項 才存在雙向,非 UI控制項 只有單向。

但是就 angular1.x 和 vue1.x 而言,賀老漏掉了一個場景,就是在給自定義組件傳遞數據的時候,也有雙向綁定的情況。在 ng 跟 vue 中分別是這樣的:

// angular1.5+
&&

angular.module("xx", [])
.component("component", {
bindings: { counter: "=" },
template: "&

vuejs的.vue文件中的style標籤中的css樣式,背景圖路徑不對?
JSP渲染比Ajax渲染更安全?(阿里的大神讓我放棄Ajax的想法,說ajax存在安全缺陷)?
vue 會做出類似 react fiber 的底層改寫嗎?
Vue.js 的官方文檔是不是太簡略了點?
vue build 在伺服器build還是在本地build之後放在伺服器?

TAG:前端開發 | React | Angular? | Vuejs |