Vue 比 React 容易,因為 Vue 提供了很多模板語法或屬性幫你搞定事情,比如 v-for、v-if、directive、v-model、watch、computed 等。你背下它們的作用就能做事了。
但是 React 比 Vue 簡單,因為 React 裡面其實只有一個概念,就是函式。React 沒有引入任何新的概念(JSX 也只是在寫函式而已)。你可以用 JS 的 if 實現 v-if,你可以用 JS 的 for 實現 v-for,你可以用 JS 的 defineProperty 實現 watch,你可以用 JS 的 getter 實現 computed。
如果你把 Vue 給你額外提供的 v-for、v-if、watch 這些特性全部去掉,然後在 Vue 裡用 JSX,其實跟 React 差別也不大,但這樣就很不 Vue 了呀。
你也可能在 React 裡面自定義一些 API 來模擬 Vue,那這樣就很不 React 了呀。
每個人只能有一種風格,每個庫也只能有一種風格。
如果一個人有兩種風格而且時不時切換一下,你會覺得這個人精神分裂。庫也是一樣的。
如果你用過 Angular,那你就會覺得 Vue 的 API 真是太少了。Angular 的風格就是你想要的功能我都有(很多正規化)。
「容易」和「簡單」的區別:
任何庫都要在「概念簡潔」(自由度高)和「使用便利」(提供現成的正規化)上做選擇。React 選擇了前者,Vue 選擇了後者。
不可能有一個庫能同時做到兩者。即使做到了兩者,你也會發現使用的人分成兩撥,兩撥人互相看不慣。
如果你一定要問他倆孰優孰劣,可能沒有答案。
Vue 和 React 的功能重複度很高,所以你如果已經習慣 React 的風格再去了解 Vue 就會有一種不適感。
這種不適感是風格問題,React 能做到的東西 Vue 基本都能做到。
好的程式設計師會根據場景選工具。
壞的程式設計師才會認為某種工具是無敵的。
而且壞的程式設計師有一種特殊的能力:
無論工具多好,他都能把事情做爛。
如果你想讓你的專案程式碼質量高,最好的辦法就是把爛程式設計師趕走,招好的程式設計師進來。這不是選用 Vue 或選用 React 能解決的事情。
Vue 比 React 容易,因為 Vue 提供了很多模板語法或屬性幫你搞定事情,比如 v-for、v-if、directive、v-model、watch、computed 等。你背下它們的作用就能做事了。
但是 React 比 Vue 簡單,因為 React 裡面其實只有一個概念,就是函式。React 沒有引入任何新的概念(JSX 也只是在寫函式而已)。你可以用 JS 的 if 實現 v-if,你可以用 JS 的 for 實現 v-for,你可以用 JS 的 defineProperty 實現 watch,你可以用 JS 的 getter 實現 computed。
如果你把 Vue 給你額外提供的 v-for、v-if、watch 這些特性全部去掉,然後在 Vue 裡用 JSX,其實跟 React 差別也不大,但這樣就很不 Vue 了呀。
你也可能在 React 裡面自定義一些 API 來模擬 Vue,那這樣就很不 React 了呀。
每個人只能有一種風格,每個庫也只能有一種風格。
如果一個人有兩種風格而且時不時切換一下,你會覺得這個人精神分裂。庫也是一樣的。
如果你用過 Angular,那你就會覺得 Vue 的 API 真是太少了。Angular 的風格就是你想要的功能我都有(很多正規化)。
「容易」和「簡單」的區別:
前端搞那麼多工具框架庫,是讓開發更簡單,還是更復雜?任何庫都要在「概念簡潔」(自由度高)和「使用便利」(提供現成的正規化)上做選擇。React 選擇了前者,Vue 選擇了後者。
不可能有一個庫能同時做到兩者。即使做到了兩者,你也會發現使用的人分成兩撥,兩撥人互相看不慣。
如果你一定要問他倆孰優孰劣,可能沒有答案。
Vue 和 React 的功能重複度很高,所以你如果已經習慣 React 的風格再去了解 Vue 就會有一種不適感。
這種不適感是風格問題,React 能做到的東西 Vue 基本都能做到。
好的程式設計師會根據場景選工具。
壞的程式設計師才會認為某種工具是無敵的。
而且壞的程式設計師有一種特殊的能力:
無論工具多好,他都能把事情做爛。
如果你想讓你的專案程式碼質量高,最好的辦法就是把爛程式設計師趕走,招好的程式設計師進來。這不是選用 Vue 或選用 React 能解決的事情。