美文网首页
vuex模块化过程中的问题

vuex模块化过程中的问题

作者: 暖年的咆哮 | 来源:发表于2020-12-15 11:49 被阅读0次

做项目用到vuex,不可避免的需要将store模块化,这样在后期维护,以及开发过程中都要规范不少,但是在模块化过程中,不可避免的会出现命名冲突等问题,所以我们在开发时需要注意以下几点:

话不多说,直接上代码
1、如何模块化

import Vue from 'vue'
import Vuex from 'vuex' //引入 vuex
import createPersistedState from 'vuex-persistedstate'   //用来处理vuex刷新状态重置的问题,原理其实也就是使用了sessionStorage或者localStorage
import modules1 from './modules/modules1'
import modules2 from './modules/modules2'
Vue.use(Vuex) //使用 vuex

export default new Vuex.Store({
  modules: {
    modules1,
    modules2
  },
  plugins: [createPersistedState({ storage: window.localStorage })]
})

2、模块modules1内定义state和mutations

const state = {
// 用户昵称和头像
  userInfo: {
    userName: '',
    avatar: ''
  }
}

const mutations = {
  changeUserInfo(state, params) {
    state.userInfo.userName = params.userName
    state.userInfo.avatar = params.avatar
  }
}

export default {
  namespaced: true,  //官方给的命名空间设置属性
  state,
  mutations
}

3、vue文件中使用

import { mapState, mapMutations } from 'vuex' 

//data或者computed中调用mapState
...mapState({
    userInfo: state => state.modules1.userInfo
  })
//methods中调用mapMutations

//2个参数,第一个是你的模块名,第二个是你模块内的方法,上面的state也是相同的,需要先指到对应模块,才能拿到模块内的值
...mapMutations('modules1', [
   'changeUserInfo'
]),
//方法调用
this.changeUserInfo(userInfo)

4、js文件中调用

import store from '@/store/index.js'
//在这里可以直接console一下store,就可以看到store中定义的方法以及state中的变量内容,使用方法也就一目了然了
//获取state中的值
store.state.modules1.userInfo
//使用mutations中的方法
let obj = {}
store.commit('modules1/changeUserInfo', obj)

ok,收工!

相关文章

  • vuex模块化过程中的问题

    做项目用到vuex,不可避免的需要将store模块化,这样在后期维护,以及开发过程中都要规范不少,但是在模块化过程...

  • 模块化vuex,获取、设置数据,及刷新保留数据方法

    前言 1.模块化vuex2.获取vuex中的数据3.设置vuex中的数据4.刷新之后,保留数据 模块化vuex 数...

  • VUEX模块化

    vuex模块化官方文档 项目github地址 在vuex的官网上,关于模块化和热重载的文档都是蛮详细的,这边也就不...

  • vuex相关文章

    vuex模块化和命名空间的实例代码

  • 使用 node 模拟请求接口

    上一篇:Vuex 进阶——模块化组织 Vuex 使用 Vue 写项目肯定会遇到一个问题,如何模拟服务端请求数据,那...

  • vuex持久化+模块化实战用法(进阶篇)

    上一篇:vuex刷新数据消失不见解决方案 Vuex模块化 模块化后的 store 大概长这样,如果画的不对,欢迎留...

  • Vuex持久化存储之vuex-persist

    问题背景: Vuex 解决了多视图之间的数据共享问题。但是运用过程中又带来了一个新的问题是,Vuex 的状态存储并...

  • 2018-03-13

    Vuex 进阶——模块化组织 Vuex 前两篇讲解了一下 Vuex 的基本使用方法,可是在实际项目中那么写肯定是不...

  • vuex入门实例2

    vuex入门实例2 这章节我准备以requirejs模块化,讲解下如何快速上手vuex 源码地址 工程代码结构如下...

  • vuex-persist不兼容IE的问题

    Vuex 解决了多视图之间的数据共享问题。但是运用过程中又带来了一个新的问题是,Vuex 的状态存储并不能持久化。...

网友评论

      本文标题:vuex模块化过程中的问题

      本文链接:https://www.haomeiwen.com/subject/obzigktx.html