1. 設計思想
vue: vue的官網介紹說vue是一種漸進式框架,采用自底向上增量開發的設計;
react: 采用函數式編程,推崇純組件,數據不可變,單向數據流;
2. 編寫語法
vue: 采用單文件組件格式,保留了html,css,js分離的寫法;
react: 通過jsx渲染模板,html,css全部寫入js中;
3. 構建工具
vue: 提供cli腳手架,可以非常容易的創建項目並進行配置;
react: 使用creat-react-app,有局限行,不能完成某些配置;
4. 狀態管理
vuex : $store 被直接注入到了組件實例中,因此可以比較靈活的使用,組件既可以dispatch action又可以commit updates。
-
- 使用 dispatch 和 commit 提交更新
- 通過 mapState 或者直接通過 this.$store 來讀取數據
redux : 我們每一個組件都需要顯示的用 connect 把需要的 props 和 dispatch 連接起來,redux 中只能進行 dispatch,並不能直接調用 reducer 進行修改。
兩者之間的差異
-
-
Redux 使用的是不可變數據,而Vuex的數據是可變的。Redux每次都是用新的state替換舊的state,而Vuex是直接修改
-
Redux 在檢測數據變化的時候,是通過 diff 的方式比較差異的,而Vuex其實和Vue的原理一樣,是通過 getter/setter來比較的(如果看Vuex源碼會知道,其實他內部直接創建一個Vue實例用來跟蹤數據變化)
-
React更偏向於構建穩定大型的應用,非常的科班化。
Vue更偏向於簡單迅速的解決問題,更靈活,不那么嚴格遵循條條框框。
因此也會給人一種大型項目用React,小型項目用 Vue 的感覺。
