pinia和vuex的區(qū)別
pinia它沒有mutation,他只有state,getters收厨,action【同步驹暑、異步】使用他來修改state數(shù)據(jù)
pinia他默認(rèn)也是存入內(nèi)存中揪垄,如果需要使用本地存儲,在配置上比vuex麻煩一點
pinia語法上比vuex更容易理解和使用较沪,靈活。
pinia沒有modules配置失仁,沒一個獨立的倉庫都是definStore生成出來的
pinia state是一個對象返回一個對象和組件的data是一樣的語法
Vuex 和 Pinia 的優(yōu)缺點
Pinia的優(yōu)點
完整的 TypeScript 支持:與在 Vuex 中添加 TypeScript 相比尸曼,添加 TypeScript 更容易
極其輕巧(體積約 1KB)
store 的 action 被調(diào)度為常規(guī)的函數(shù)調(diào)用,而不是使用 dispatch 方法或 MapAction 輔助函數(shù)萄焦,這在 - - Vuex 中很常見
支持多個Store
支持 Vue devtools控轿、SSR 和 webpack 代碼拆分
Pinia的缺點
不支持時間旅行和編輯等調(diào)試功能
vuex的優(yōu)點
支持調(diào)試功能,如時間旅行和編輯
適用于大型楷扬、高復(fù)雜度的Vue.js項目
vuex的缺點
從 Vue 3 開始解幽,getter 的結(jié)果不會像計算屬性那樣緩存
Vuex 4有一些與類型安全相關(guān)的問題
何時使用Pinia贴见,何時使用Vuex
個人感覺:
由于Pinea是輕量級的烘苹,體積很小,它適合于中小型應(yīng)用片部。它也適用于低復(fù)雜度的Vue.js項目镣衡,因為一些調(diào)試功能,如時間旅行和編輯仍然不被支持档悠。
將 Vuex 用于中小型 Vue.js 項目是過度的廊鸥,因為它重量級的,對性能降低有很大影響辖所。因此惰说,Vuex 適用于大規(guī)模、高復(fù)雜度的 Vue.js 項目缘回。
pinia和vuex在vue2和vue3都可以使用吆视,一般來說vue2使用vuex,vue3使用pinia。