• element ui框架(vuex模块化)


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

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

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

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

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

    1. const user = {
    2. state : sessionStorage.getItem('state')?JSON.parse(sessionStorage.getItem('state')):{
    3. user:{
    4. name:''
    5. }
    6. },
    7. getters : {
    8. getUser(state) {
    9. return state.user;
    10. }
    11. },
    12. mutations : {
    13. updateUser(state,user){
    14. state.user = user;
    15. }
    16. },
    17. actions : {
    18. asyncUpdateUser(context, user){
    19. context.commit("updateUser", user);
    20. }
    21. }
    22. };
    23. export default user;

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

    1. import Vue from 'vue'
    2. import Vuex from 'vuex'
    3. import user from './modules/user'
    4. Vue.use(Vuex)
    5. export default new Vuex.Store({
    6. modules :{
    7. user
    8. }
    9. })

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

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

    1. methods: {
    2. saveState() {
    3. console.log(JSON.stringify(this.$store.state));
    4. sessionStorage.setItem('state', JSON.stringify(this.$store.state));
    5. }

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

    1. methods: {
    2. saveState() {
    3. console.log(JSON.stringify(this.$store.state.user));
    4. sessionStorage.setItem('state', JSON.stringify(this.$store.state.user));
    5. }
    6. }

    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。这个是实际开发中经常遇到的错误。

  • 相关阅读:
    8.2 JUC - 6.CyclicBarrier
    [附源码]计算机毕业设计springboot本地助农产品销售系统
    ZooKeeper下载、安装、配置和使用
    Tomcat任意文件上传漏洞(CVE-2017-12615)
    Attention Is All You Need原理与代码详细解读
    计算机毕业设计(附源码)python学生宿舍管理系统
    如何在 Inno Setup 中关联多种文件格式
    针对海量数据的存储与访问瓶颈的解决方案
    【Vue】轻松理解数据代理
    PX4模块设计之三十七:MulticopterRateControl模块
  • 原文地址:https://blog.csdn.net/feixiaoxing/article/details/126926167