Closed marvinosswald closed 6 years ago
Is it necessary for working the plugin 'createSharedMutations' to init Vuex at main process and all renderer processes? When I did it the plugin worked, but I have no confidence that it's correct usage.
I want a sample project which teaches me how to use 'vuex-electron'.
@miyanokomiya Could you please provide your code of main.js? I am trying to make it work with no luck. Thanks
@Ksistof The plugin 'createSharedMutations' seems to make the store global for all processes. All processe have original state, but each state has the same value by 'createSharedMutations'.
If renderer processes dispach actions, the actions is cancelled in renderer processes and notify main process to do the actions. If main process commit mutations, the mutations change state of that and notify renderer processes to do the same mutations to change each state of them. If renderer processes commit mutations, a error occurs.
The only thing I did is to init Vuex from main process and renderer process.
src
- main.js
- renderderMain.js
- store.js
main.js
import './store' // this code makes 'vuex-electron' work well
~~~ normar code to init electron app ~~~
renderderMain.js
import Vue from 'vue'
import store from './store'
import App from './App'
if (!process.env.IS_WEB) Vue.use(require('vue-electron'))
new Vue({
components: { App },
store,
template: '<App/>'
}).$mount('#app')
store.js
import Vue from 'vue'
import Vuex from 'vuex'
import { createPersistedState, createSharedMutations } from 'vuex-electron'
Vue.use(Vuex)
export default new Vuex.Store({
~~~ state, actions etc... ~~~,
plugins: [createPersistedState(), createSharedMutations()],
strict: process.env.NODE_ENV !== 'production'
})
@marvinosswald @miyanokomiya @Ksistof
Hey guys,
I've added the example project and updated documentation a little bit. I'm sorry, I really missed one step in Installation
guide.
In case if you are using createSharedMutations()
you need to create an instance of Vuex Store in the main process. Just add such line to your main process:
import './path/to/your/store'
Also, you could check the example project: – https://github.com/vue-electron/vuex-electron-example
Let me know if you have any questions.
Have a nice day ;)
The devs should at least write out an error message if this fails, though, and save a headache for other developers.
Solved, thanks @MrEmelianenko for the neat example !
Why is it closed, the issue is still there!! Just spent hours on debugging this silly thing 😤 https://github.com/SimulatedGREG/electron-vue/issues/733
i'm calling the addPod Action but my action never gets hit.. if i remove this plugin from vuex it works seemless.
Please let me know if i can provide more data.
my vuex index.js