1、初步嘗試
我首先嚐試用mutation
(commit)傳參。結果控制檯報錯:
[Vuex Electron] Please, don't use direct commit's,
use dispatch instead of this.
好好好。那我再用action
傳參試試。雖然控制檯沒報錯,但卻一直無法賦值!
2、查找資料
我找到一個解決方法:
註釋掉store
目錄下index.js
的createSharedMutations
插件。
經測試確實可以!但不知道爲什麼。
3、深入研討
經過進一步的查閱。我瞭解到,剛纔傳值失敗,是因爲electron-vue
腳手架引入了vuex-electron
介個插件。
文檔中明確註明了:
In case if you enabled createSharedMutations() plugin you need to create an instance of store in the main process. To do it just add this line into your main process (for example src/main.js):
import './path/to/your/store'
意思是:
如果你啓用了這個插件,需要在主進程導出(export )store的實例。
於是我在主進程中加上了這一句:
import '../renderer/store'
再次運行,賦值成功!
4、反思
vuex-electron
介個插件,用於多進程間共享Vuex Store的狀態。
如果沒有多進程交互的需求,完全可以不引入這個插件。
再進一步思考。
之前我都是圖方便,直接用腳手架。
但它們有可能加載不必要的插件。(甚至會導致兼容問題)
需要注意~