Vuex模块化的使用

本文介绍了如何在 Vue.js 应用中使用 Vuex 进行状态管理,包括如何通过 `index.js` 文件结构化地引入和组织模块,以及如何在组件中通过 `mapState` 方法或直接访问 `$store` 来使用状态。同时,展示了如何通过 namespaced 属性实现模块的命名空间隔离,确保状态的独立性。
摘要由CSDN通过智能技术生成

1.代码结构

index.js的作用是创建Vuex对象,并引入modules中定义的状态。modules中就是你的模块。

2.引入modules

index.js文件主要是扫描modules包中定义的状态,引入到Vuex中(可直接复制使用)

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

// 搜索目录 获取目录文件对象 类似于Java File modulesFiles = new File("/modules");
const modulesFiles = require.context('./modules', true, /\.js$/)

// 无需导入 使用此方法自动加载
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  // set './app.js' => 'app'
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
  const value = modulesFiles(modulePath)
  modules[moduleName] = value.default
  return modules
}, {})

const store = new Vuex.Store({
  // 加载模块到Vuex对象中
  modules
})

export default store

3.定义modules

//初始化

const state = {
	
}

const mutations = {
	
}

const actions = {
	
}

const getters = {
	
}

export default {
	namespaced: true,
	state,
	mutations,
	actions,
	getters
}

 4.使用状态

方式一:

computed:{
			...mapState(
				// 模块名称 引入的变量
				'login',['xUsername']
				)
		}

方式二:

<view>
	{{$store.state.login.xUsername}}
</view>

 

参考文档:

Vuex中的store文件中四个map方法的使用以及模块化和命名空间 - 苏槿年 - 博客园

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值