首页 > 其他 > 详细

Vuex中store的使用

时间:2021-05-07 12:14:53      阅读:12      评论:0      收藏:0      [点我收藏+]

如果我们需要在不同路由中使用同一个会改变的参数,也就是需要一个全局参数,我们可以通过Vuex的store来实现。

实现方法:

1.在package.json中加入vuex,因为store是Vuex的一个功能。然后执行npm install。

"dependencies": {
  "element-ui": "^2.15.1",
  "less": "^4.1.1",
  "less-loader": "^8.1.1",
  "vue": "^2.5.2",
  "vue-router": "^3.0.1",
  "vuex": "3.3.0"
}

2.在main.js导入store,并加入到Vue实例中。

import Vue from ‘vue‘
import App from ‘./App‘
import router from ‘./router‘
import store from ‘./store‘

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: ‘#app‘,
  router,
  store,
  components: { App },
  template: ‘<App/>‘
})

3.在src文件夹下新增store文件夹,里面包含index.js和modules/userId.js,modules文件夹下的文件为变量名。

技术分享图片

4.编辑userId.js代码如下,即定义一个全局状态userId,定义其get和set方法。

其中,mutations是改变的意思,即改变状态的值。

export default {
    state: {
        userId:{}
    },
    getters: {
        getUserId: state => state.userId
    },
    mutations: {
        setUserId(state, userId){
            state.userId = userId
        }
    }
}

5.编辑index.js代码如下,即引入并使用Vuex,引入userId并在modules中配置。

import Vue from ‘vue‘
import Vuex from ‘vuex‘
import userId from ‘./modules/userId‘

Vue.use(Vuex)

export default new Vuex.Store({

    state: {
        //这里放全局参数
    },

    mutations: {
        //这里是set方法
    },

    getters: {        
        //这里是get方法   
    },

    actions: {
      
    },

    modules: {
        userId,
        //这里是为了给全局变量分组,所以需要写提前声明其他store文件,然后引入这里
    }
})

6.然后我们就可以在需要的地方存取变量了。

存变量的方法为

this.$store.commit(‘setUserId‘, ‘luoyihao‘)

取变量的方法为

this.$store.getters.getUserId

那么Vuex和localStorage的区别是什么呢?

1.最重要的区别:vuex存储在内存,localStorage则以文件的方式存储在本地

2.应用场景:vuex用于组件之间的传值,localstorage则主要用于不同页面之间的传值。

3.永久性:当刷新页面时vuex存储的值会丢失,localStorage不会。

Vuex中store的使用

原文:https://www.cnblogs.com/luoyihao/p/14738181.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!