vuex 详细介绍和使用

简介: vuex 详细介绍和使用

什么是vuex,为什么使用Vuex?

Vuex 是一个专为 Vue.js 应用程序开发的 状态管理模式,类似 edux
为处理复杂的组件通信,所以使用的一种状态管理模式

安装vuex

npm i vuex

如何使用vuex

  • 模板
 import Vue from 'vue'
 import Vuex from 'vuex'
 import about from '@/store/about'
 Vue.use(Vuex)
 export default new Vuex.Store({
    state: {  
    },
    getters: {    
    },
    mutations: {
    },
    actions: {
    },
    modules: {
    }
 })

如何在组件中获取vuex里的内容

this.$store.state.value
使用辅助函数获取:
...mapState(['aa','bb'])

vuex的五种状态?

state:仓库中唯一存放数据的地方。(类似于组件中的data,存放大量的数据,数据相对 getters 固定)
getters:唯一存放派生数据的地方
  派生数据  === 计算属性
mutations:唯一修改state数据的地方。(存放着各种函数,类似于组件中的methods)
actions:唯一处理异步操作的地方。(存放异步的操作)
  ps:处理完成得到结果后,通过commit来调用mutations中的方法
modules:存放着其他子仓库的引用

mutaions和actions里的参数?

mutations里的方法有两个参数,第一个参数默认为state,第二个参数为传递的值
actions里的方法有两个参数,第一个参数默认为整个$store,第二个参数为传递的值

vuex的工作流程

  • 同步操作:
  this.$store.commit('addclick',value)
  mutations(){
    addclick(state,data){
      console.log(state,'可以获取到state里所有的内容')
      console.log(data,'从组件里传递过来的参数')
    }
  }

异步操作:

  this.$store.dispatch('addclick',value)
  mutations(){
    addclicks(state,data){
      console.log(state,'可以获取到state里所有的内容')
      console.log(data,'从组件里传递过来的参数')
    }
  }
  actions(){
    addclick({state,commit},data){
      commit('addclicks',data)
    }
  }

vuex的辅助函数

使用辅助函数必须要进行引入
import {mapState,mapGetters,mapMutations,mapActions} from 'vuex'
computed:{
  ...mapState(['aa','bb'])
  ...mapGetters(['aa','bb'])
}
methods:{
  ...mapMutations(['aa','bb'])
  ...mapActions(['aa','bb'])
}

vuex如何使用子模块

新建一个js子文件:
  export default {
    // 作为子仓库存在时,需要开启命名空间
    namespaced:true,
    state: {},
    getters: {},
    mutations: {},
    actions: {},
    modules: {}
  }
在原来的vuex里
  import aa from '@/store/aa.js'
  export default new Vuex.Store({
    modules:{
      A : aa
    }
  })
在vue组件中引入
  this.$store.state["A/list"];

以上就是vuex的使用方法,如果要学习其他的方法,可以去看我的其他文章

相关文章
|
JavaScript 前端开发 API
轻松搞定Vue3+Pinia-4-多个store
轻松搞定Vue3+Pinia-4-多个store
416 0
|
存储 JavaScript
Vue中vuex的应用(一)
Vue中vuex的应用(一)
56 0
|
JavaScript
Vue(六)——vuex(二)
Vue(六)——vuex(二)
55 0
|
存储 缓存 前端开发
轻松搞定 Vue3+Vite+Pinia-3-getters
轻松搞定 Vue3+Vite+Pinia-3-getters
86 0
|
6月前
|
存储 JavaScript 开发者
|
3月前
|
资源调度 JavaScript
Vuex适合哪些场景使用
【8月更文挑战第5天】Vuex适合哪些场景使用
35 3
|
缓存 JavaScript
vue中computed讲解
vue中computed讲解
54 0
|
JavaScript
Vue Vuex 学习
Vue Vuex 学习
57 0
|
6月前
|
存储 JavaScript API
vuex的使用
vuex的使用
30 0
|
存储 资源调度 JavaScript
Vuex详解,详细讲解一下Vuex
Vuex详解,详细讲解一下Vuex
211 0