简易的vuex用法

简介: vuex是vue中用于管理全局状态的一个组件,用于不同组件之间的通信,下面将介绍它的简单用法 首先安装vue与vuex npm install vue npm install vuex --save 然后创建一个单独的文件store.

vuex是vue中用于管理全局状态的一个组件,用于不同组件之间的通信,下面将介绍它的简单用法

首先安装vue与vuex

npm install vue
npm install vuex --save

然后创建一个单独的文件store.vue用来对vuex的处理和使用

import vue from 'vue'
import vuex from 'vuex'
vue.use(vuex)

vuex有以下几种选项

  • state: Vuex store 实例的根 state 对象
  • mutations: 在 store 上注册 mutation,处理函数总是接受 state 作为第一个参数(如果定义在模块中,则为模块的局部状态),payload 作为第二个参数(可选)。
  • actions: 在 store 上注册 action。处理函数总是接受 context 作为第一个参数,payload 作为第二个参数(可选)。
  • getters: Vuex 允许我们在 store 中定义“getter”(可以认为是 store 的计算属性)。就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。
  • modules: 包含了子模块的对象,会被合并到 store。
  • plugins: 一个数组,包含应用在 store 上的插件方法。
  • strict: 使 Vuex store 进入严格模式,在严格模式下,任何 mutation 处理函数以外修改 Vuex state 都会抛出错误。
 
我们今天只用到state,mutations,actions,getters
const state = {
    token: '' // 定义state的初始值,组建中我们可以用$store.state.token来调用
}
const mutations = {
  setToken (state, token) {
    state.token = token || ''
  }
}

我们可以用$store.commit('setToken', 'xxxxxx')来改变state中token的值

const actions = {
  setToken (context) {//这里的context和我们使用的$store拥有相同的对象和方法
    context.commit('setToken');
    //你还可以在这里触发其他的mutations方法
  },
}

可以使用 $store.dispatch('setToken') 来触发 action 中的 setToken方法。actions里面可以执行异步操作。

getters: {
    doneTodos: (state, getters) => {
      return state.todos.filter(todo => todo.done)
    }
  }

getters类似于vue的计算属性,它的作用是用来派生一些新的状态,比如我们要把state状态的数据进行一次映射后者筛选,并把这个状态返回给组件使用。

最后将生成的实例导进main.js

export default new Vuex.Store({
  state,
  mutations,
  actions,
getters })

main.js

import store from './store'
new Vue({
  el: '#app',
  store,
  components: { App },
  template: '<App/>'
})

这样vuex的功能已经可以用了,如果业务需要,可以慢慢将它们的选项都完善进去

每一次的记录,都是向前迈进的一步
目录
相关文章
|
6月前
|
存储 JavaScript 开发者
Pinia和Vuex的区别
Pinia和Vuex的区别
1546 0
|
15天前
|
存储 JavaScript API
Vuex 和 Pinia 的区别
【10月更文挑战第18天】Vuex 和 Pinia 都有各自的优势和适用场景。Vuex 适合较为大型和复杂的项目,强调严格的架构和流程;而 Pinia 则更适合中小型项目以及对灵活性和简洁性有更高要求的开发者。你可以根据项目的具体需求和个人喜好来选择使用哪一个状态管理库。
345 59
|
6月前
|
存储 JavaScript
vuex的基本用法
Vuex是Vue.js的状态管理库,用于集中存储和管理共享状态。通过创建Vuex store实例,定义`state`(如`count`)和`mutations`(如`increment`),组件可使用`this.$store.state`访问状态,`this.$store.commit`修改状态。当应用复杂时,可将状态分割成带命名空间的模块,如`cart`,组件内通过`this.$store.state.cart`和`this.$store.commit(&#39;cart/addItem&#39;)`进行访问和修改。
|
6月前
|
存储 JavaScript
vuex和pinia区别
vuex和pinia区别
408 0
|
6月前
|
JavaScript 网络架构
vue-router用法
vue-router用法
36 1
|
6月前
|
缓存 JavaScript
vuex的讲解与相关用法
vuex的讲解与相关用法
27 0
|
6月前
|
存储 JavaScript
vue3中如何使用vuex
首先,在这里回答一个粉丝的问题,为什么有local storage 和session storage还要使用vuex,这里我解释一下,我们要明白浏览器的存储和vuex的存储的不同点,首先,浏览器存在本地,vuex存在内存里,所以vuex刷新会丢失,从现在来看,好像存在浏览器里会更好,但是,有个问题时,存在浏览器里不是响应式的啊,只有存在vuex才是响应式啊,我们通过计算属性或者watch监听下在同步更新下就行,但是,浏览器不支持响应式,所以,我们为了规避掉vuex的的刷新丢失的问题,所以,当刷新时,从浏览器的存储里拿数据,防止在vuex里面,在传给组件,借助vuex的特性,来实本地存储响应式。
|
6月前
|
JavaScript 前端开发 中间件
redux和Vuex的使用示例
redux和Vuex的使用示例
40 0
|
12月前
|
存储 资源调度 JavaScript
vuex详细用法
vuex详细用法
45 0