Search code examples
vue.jsvuexquasar

Using store in component with Quasar


I'm trying to implement Vuex store in a Quasar project. I created a new project using the quasar-cli and checked the Vuex box. I then followed the guide on the quasar website (https://quasar.dev/quasar-cli/cli-documentation/vuex-store) and created a new store using quasar new store test I then registered the store module in the store/index.js

export default function(/* { ssrContext } */) {
  const Store = new Vuex.Store({
    modules: {
      test
      // example
    },

Afterwards, I added the mutation and state code, exactly as referenced in the tutorial. Then I created a new component (test) and added the code as explained.

However, I am unable to use this.$store, and receive a warning from my IDE that $store is not defined. I have read the Vuex documentation, which writes that it is possible to pass the state to all components by adding the state to the object in main.js. As far as i can see, quasar does this already.

So, what am I doing wrong and how can you use store without manually importing it for every single component?


Solution

  • import Vuex from 'vuex'
    
    Vue.use(Vuex)
    
    const store = new Vuex.Store({
      modules: {
        // general state
        app
    },
    mutations: {
        someMutation (state, store) {
    
        }
      },
     actions: {
        someAction ({commit}) {
    
        },
    })
    export default store
    

    Also don't forget to include this store in app.js