從 Vuex 0.6.x 遷移到 1.0
從 Vuex 0.6.x 遷移到 1.0
Vuex 2.0 已經發布了,但是這份指南只涵蓋遷移到 1.0?這是打錯了嗎?此外,似乎 Vuex 1.0 和 2.0 也同時釋出。這是怎麼回事?我該用哪一個並且哪一個相容 Vue 2.0呢?
Vuex 1.0 和 2.0 如下:
- 都完全支援 Vue 1.0 和 2.0
- 將在可預見的未來保留支援
然而它們的目標使用者稍微有所不同。
Vuex 2.0 從根本上重新設計並且提供簡潔的 API,用於幫助正在開始一個新專案的使用者,或想要用客戶端狀態管理前沿技術的使用者。此遷移指南不涵蓋 Vuex 2.0 相關內容,因此如果你想了解更多,請查閱
Vuex 1.0 主要是向下相容,所以升級只需要很小的改動。推薦擁有大量現存程式碼庫的使用者,或只想儘可能平滑升級 Vue 2.0 的使用者。這份指南致力促進這一過程,但僅包括遷移說明。完整使用指南請查閱 Vuex 1.0 文件。
帶字串屬性路徑的 store.watch
替換
store.watch
現在只接受函式。因此,下面例子你需要替換:
|
為:
|
這幫助你更加完善的控制那些需要監聽的響應式屬性。
升級方法
在程式碼庫執行遷移工具,查詢在 store.watch
中使用字串作為第一個引數的事例。
Store 的事件觸發器 移除
store 例項不再暴露事件觸發器 (event emitter) 介面 (on
, off
, emit
)。如果你之前使用 store 作為全域性的 event bus,遷移說明相關內容請查閱此章節。
為了替換正在使用觀察 store 自身觸發事件的這些介面,(例如:store.on('mutation', callback)
store.subscribe
。在外掛中的典型使用方式如下:
|
更多資訊請查閱外掛文件的示例。
升級方式
在程式碼庫執行遷移工具,查詢使用了 store.on
, store.off
, store.emit
的事例。
中介軟體 替換
中介軟體被替換為外掛。外掛是接收 store 作為僅有引數的基本函式,能夠監聽 store 中的 mutation 事件:
|
更多詳情,請查閱 外掛文件。
升級方法
在程式碼庫執行遷移工具,查詢使用了 middlewares
選項的事例。