码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Vue-3.5vuex分模块


    模块module

    由于vuex使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store对象就有可能变得相当臃肿。(当项目变得越来越大的时候,Vuex会变得越来越难以维护)

    模块创建

    先在store文件下创建modules文件夹,再创建各个模块JS

    再在index.js文件下导入模块文件

     在Vue的Vuex下查看模块

    state更为推荐的写法:写成函数的形式,return数据(保证数据的独立性)

    1. export default{
    2. state(){
    3. return{
    4. list:[]
    5. }
    6. }
    7. }

    访问模块中的state&mutation等

    尽管已经分模块了,但其实子模块的状态,还是会挂到根级别的state中,属性名就是模块名

    使用模块中state的数据

    1)直接通过模块名访问$store.state.模块名.xxx

    2)通过mapState映射

    import { mapState } from 'vuex'

    默认根级别的映射mapState(['xxx'])

    1. computed:{
    2. ...mapState(['模块名'])
    3. }

    子模块的映射mapState('模块名',['xxx'])-需要开启命名空间

    1. computed:{
    2. ...mapState(['模块名','模块名中的子属性'])
    3. }

    开启命名空间:在对应模块JS文件中添加如下代码

    1. export default{
    2. namespaced:true
    3. }

    使用模块中getters的数据

    1)直接通过模块名访问$store.getters['模块名/xxx']

    2)通过mapGetters映射

    默认根级别的映射mapGetters(['xxx'])

    子模块的映射mapGetters('模块名',['xxx'])-需要开启命名空间

    调用模块中mutation的方法

    注意:默认模块中的mutation和actions会被挂载到全局,需要开启命名空间,才会被挂载到子模块。

    如果没有开启命名空间,直接就像访问全局mutation方法语法一样访问即可,不需要有模块名,但是很不合理。

    开启命名空间后:

    1)直接通过store调用  $store.commit('模块名/xxx',额外参数)

    2)通过mapMutations映射

    默认根级别的映射mapMutations(['xxx'])

    子模块的映射mapMutations('模块名',['xxx'])-需要开启命名空间

    调用模块中actions的方法

    如果没有开启命名空间,直接就像访问全局actions方法语法一样访问即可,不需要有模块名,但是很不合理。

    开启命名空间后:

    1)直接通过store调用  $store.dispatch('模块名/xxx',额外参数)

    2)通过mapActions映射

    默认根级别的映射mapActions(['xxx'])

    子模块的映射mapActions('模块名',['xxx'])-需要开启命名空间

  • 相关阅读:
    人工智能算法工程师(高级)课程11-自然语言处理之NLP的语言模型-seq2seq模型,seq+注意力与代码详解
    ZooKeeper-API基础
    vue2+antd——实现权限管理——js数据格式处理(回显+数据结构渲染)
    使用.NET简单实现一个Redis的高性能克隆版(七-完结)
    不使用AMap.DistrictSearch,通过poi数据绘制省市县区块
    基于AVR单片机的移动目标视觉追踪系统设计与实现
    【华为上机真题 2022】找到它
    K线形态识别_揉搓线
    面向面试的机器学习知识点大全
    安防监控EasyCVR视频汇聚平台无法接入Ehome5.0是什么原因?该如何解决?
  • 原文地址:https://blog.csdn.net/weixin_46479909/article/details/133868109
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号