element ui框架(vuex模块化)

Posted 嵌入式-老费

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了element ui框架(vuex模块化)相关的知识,希望对你有一定的参考价值。

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        上一节我们说到了vuex在数据保存中的作用。其实vuex在实际使用中,需要保存非常多的数据,不可能所有的数据都放到index.js里面。因此,有必要把数据放到单独的模块里面。今天就来讨论一下,如何把数据放到单独的模块里面。

1、首先在store目录下创建modules目录

        创建modules目录的目的,就是为了把相关的数据处理文件都集中放到这一个地方。

2、将之前store/index.js中的部分内容拷贝到store/modules/user.js下面,

const user = 
	
	state : sessionStorage.getItem('state')?JSON.parse(sessionStorage.getItem('state')):
		user:
			name:''
		
	,

	getters : 
		getUser(state) 
			return state.user;
		
	,

	mutations : 
		updateUser(state,user)
			state.user = user;
		
	,

	actions : 
		asyncUpdateUser(context, user)
			context.commit("updateUser", user);
		
	
;

export default user;

3、重新调整store/index.js文件

import Vue from 'vue'
import Vuex from 'vuex'
import user from './modules/user'

Vue.use(Vuex)



export default new Vuex.Store(
	modules :
		user
	
)

4、重新调整之前saveState函数,

        没有调整前,saveState函数是这么处理的,即

	methods: 
		saveState() 
			console.log(JSON.stringify(this.$store.state));
			sessionStorage.setItem('state', JSON.stringify(this.$store.state));
	

        因为这里的引用变成了state下面的一个user模块,所以需要重新修改下,

	methods: 
		saveState() 
			console.log(JSON.stringify(this.$store.state.user));
			sessionStorage.setItem('state', JSON.stringify(this.$store.state.user));
	
  

5、之前引用user的地方保持不变,,

<span>$store.getters.getUser.name</span>

6、submitForm中引用user的地方也同样不变,

this.$store.dispatch("asyncUpdateUser", name:this.form.name);

7、开始测试

        这部分测试地方,其实和前一节一样。主要还是看,Login页面登录到Main页面后,刷新网页,user显示部分的内容是否依然正常。如果一切都没有问题,那说明我们的修改是正确的。如果问题比较大,那需要回头看一下,究竟是什么地方出了问题。

8、进一步的部署和测试

        如果不仅仅希望用node.js测试,还可以用npm run dev编译,用iis测试,这也是可以的。不过要注意的是,每一次修改修改js代码后都需要重新编译、重新启动iis server。这个是实际开发中经常遇到的错误。

以上是关于element ui框架(vuex模块化)的主要内容,如果未能解决你的问题,请参考以下文章

element ui框架(vuex3使用)

Vue + Element UI:管理应用状态

使用vue2+element-ui+vuex实现后台管理系统的头部背景色动态点击修改

vue+vuex+router+element ui

Element UI table组件部分源码解读(store部分)

vue模块化(echart+element ui)