• vuex之namespaced的使用详解


    vuex中的store分模块管理,需要在store的index.js中引入各个模块,为了解决不同模块命名冲突的问题,将不同模块的namespaced:true,可以实现分离模板间的独立。

    使用举例如下:

    定义一个peopleInfo模块,定义了state,actions,mutatios等

    import { getUserInfo } from "@/api/userController"
    const peopleInfo = {
      namespaced: true, // 模块化分离
      state: {
       name: 'chen'
      },
      actions: {
        GetUserInfo ({ commit }) {
          return new Promise((resolve, reject) => {
            getUserInfo().then((res) => {
              const data = res.data
              commit('changeNameFun', data.userName)
              resolve(data)
            }).catch(err => {
              reject(err)
            })
          })
        },
      },
      mutations: {
        changeNameFun (state, val) {
          state.name = val
        }
      },

    }

    export default peopleInfo

    在store的入口文件引入该模块:

    ......
    import peopleInfo from './peopleInfo.js'
    ........
    const store = new Vuex.Store({
      state,
      getters,
      mutations,
      modules: {
        peopleInfo
      }
    })
    export default stores
    

     用模块中定义的state,getters,actions,mutations时,store操作.模块名.执行动作

       比如:this.$store.state.peopleInfo.name, this.$store.commit("peopleInfo/mutations'','wang'), this.$store.dispatch('peopleInfo/actions')等等

    参考文章:https://blog.csdn.net/fuck487/article/details/83411856

  • 相关阅读:
    java中的四种内部类
    09_TomCat_基础知识
    08_XML的解析_SAX解析
    IO流07_输入输出流总体系
    IO流06_处理流
    IO流05_OutputStream和Writer输出流
    IO流04_InputStream和Reader输入流
    IO流03_流的分类和概述
    IO流02_文件过滤器
    IO流01_File类
  • 原文地址:https://www.cnblogs.com/cjechenjinge-0820/p/14919440.html
Copyright © 2020-2023  润新知