Vuex 动态模块状态管理器

news2024/9/28 13:21:21

模块化思想

        我们之前的博文已经讲述了Vuex怎么使用命名空间实现模块化状态管理。详情可以看:

Vuex命名空间及如何获取根模块、兄弟模块状态管理器_AI3D_WebEngineer的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_42274805/article/details/133269196?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169839448016800182196324%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=169839448016800182196324&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-133269196-null-null.nonecase&utm_term=%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4&spm=1018.2226.3001.4450

动态模块场景

        动态模块的设计理念是为了方便前端随时挂载和卸载状态管理器模块。

模块书写

import { dailyStatistics, getList } from '@/api/perception/index.js';
export const INSTALL_MODULE_PATH = 'moduleStore/perception';
export default {
  namespaced: true,
  state: {
    dailyStatistics: {},
    recordsList: {}
  },
  mutations: {
    saveDailyStatistics(state, loadData) {
      state.dailyStatistics = loadData;
    },
    saveRecordsList(state,loadData) {
      state.recordsList = loadData
    }
  },
  actions: {
    /**
     * @name 获取数据
     */
    getDailyStatistics({ commit }) {
      return dailyStatistics().then(res => {
        commit('saveDailyStatistics', res.data || {});
      });
    },
    getRecordsList({ commit }, {pageA,stepNum,info}) {
        ...
        commit('saveRecordsList', {
          total:res.data.total,
          list
        })
      });
    }
  },
  getters: {},
};

        与正常的模块没什么区别的,只是多导出了一个路径变量。用于指定她在仓库里的位置。

挂载和卸载

import PERCEPTION_MODULE, {INSTALL_MODULE_PATH,} from '@/store/modules/perception';
 beforeCreate() {
    // 注册状态管理器模块
    this.$store.registerModule(INSTALL_MODULE_PATH, PERCEPTION_MODULE);
  },
beforeDestroy() {
    // 卸载管理器模块
    this.$store.unregisterModule(INSTALL_MODULE_PATH);
},

        此时挂载上去的仓库位于this.$store.moduleStore/perception里

使用

// 调用actions
await this.$store.dispatch(`${INSTALL_MODULE_PATH}/getRecordsList`, {...});
// 调用仓库
this.$store.state[INSTALL_MODULE_PATH].xxxx
// 调用mutations
this.$store.commit(`${INSTALL_MODULE_PATH}/saveDailyStatistics`, {...});
// 调用getter
this.$store.getters[INSTALL_MODULE_PATH].xxxx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1140708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

宝塔面板8.0.3添加数据库mysql8.0版本会提示服务器状态异常问题的解决方案

宝塔面板8.0.3添加数据库提示服务器状态异常 宝塔面板8.0.3添加数据库mysql8.0版本会提示服务器状态异常问题的解决方案,首先是因为我们升级了面板,而我们的项目数据库是mysql8因此发生了莫名奇妙的数据不通问题,更奇怪是添加数据库会提示服…

《计算机工程》期刊投稿记录(2023.10.27更新)

本人于2023-09-22投稿《计算机工程》,预计2023-10-25完成加急外审,目前是2023-10-27,超时2天。同门超时17天。 在CSDN水评论区后发现:近期投稿《计算机工程》的文章,外审时间普遍超时。 最长超时时间有超过一个月的。…

在3分钟内使用AI-Chat生成精美PPT(附AI工具)

前言 在人工智能的大趋势下,AI-Chat是一款令人惊叹的技术。它用强大的自然语言处理技术帮助我们快速生成PPT,提高工作效率。本文将介绍使用ChatAI-Chat生成PPT的方法,以及使用Mindshow转换为炫酷的演示文稿。让技术为我们节省时间&#xff0c…

ChatGLM系列三:Freeze微调

目前主流对大模型进行微调方法有三种:Freeze方法、P-Tuning方法和Lora方法。 Freeze: 即参数冻结,对原始模型部分参数进行冻结操作,仅训练部分参数,以达到在单卡或不进行TP或PP操作,就可以对大模型进行训练。 Freeze…

数字孪生智慧工厂三维可视化系统解决方案,打造新一代智慧工厂

在制造业的快速发展和数字化转型的时代,智慧工厂已经成为制造企业前进的必经之路。数字孪生技术,作为工业数字化转型的核心动力,为打造智慧工厂提供了关键支持。其中,数字孪生智慧工厂三维可视化系统解决方案无疑是制造企业的得力…

PostMan 之 Mock 接口测试

在测试的时候经常会碰到后端开发工程师的接口还没有开发完成,但是测试任务已经分配过来。没有接口怎么测试呢? 测试人员可以通过 mock server 自己去造一个接口来访问。mock server 可用于模拟真实的接口。收到请求时,它会根据配置返回对应的…

如何查询IP地址的位置?

要查询IP地址的位置,您可以使用各种在线工具和服务。以下是一些常见的方法: 1. IP地址查询网站: 有很多在线IP地址查询网站 https://www.ip66.net/?utm-sourceLJ&utm-keyword?1146 ,它们允许您输入一个IP地址并获取关于其位…

FL Studio21.2.0官方中文版重磅发布

FL Studio21.2.0官方中文版重磅发布纯正简体中文支持,更快捷的音频剪辑及素材管理器,多样主题随心换!Mac版新增对苹果M2/1家族芯片原生支持。全能数字音乐工作站(DAW)编曲、剪辑、录音、混音,20余年的技术积…

【纯离线】Ubuntu离线安装ntp时间同步服务

Ubuntu离线安装ntp服务 准备阶段:下载安装包 apt-get download ntp apt-get download ntpdate 一、服务端( 192.166.6.xx) 1、环境准备 先判断是否已安装 systemd-timesyncd systemctl is-active systemd-timesyncd 如果返回结果是 active,则表示…

功能测试想进阶,可以提供一点点思路和方向吗?

1. 深入了解测试理论: 了解测试的原理、方法和最佳实践,包括黑盒测试、白盒测试、灰盒测试等。可以阅读相关的书籍或参加在线课程。 2. 学习相关测试工具: 掌握常用的测试工具,如缺陷发现工具、性能测试工具、安全测试工具等。可以…

双指针遍历(找最大值)

设置左右指针 比较长度,长度短的移动(长度长的移动体积只会减少) 计算每次的体积,找最大值

怎么制作出动态效果gif?三步在线操作

我们经常能看到各种有趣好玩的电影、电视剧名场面做成的gif动图表情包,很有意思。那么,要怎么从视频中截取一段做成gif动画呢?给大家风向一招gif图片制作(https://www.gif.cn/)的小窍门,无需下载软件&#…

Shopee店铺ID是什么?Shopee店铺id怎么看?——站斧浏览器

Shopee店铺ID和产品ID是Shopee网站上两个非常重要的标识符,可以用来方便地查找店铺和商品。,因此掌握了如何查看Shopee店铺ID和产品ID的方法是很有必要的。 Shopee店铺ID是什么? 首先,我们需要了解Shopee店铺ID是什么&#xff0…

《合成孔径雷达成像算法与实现》Figure5.5

clc clear close all%% 参数设置 Ta 64; % 脉冲持续时间 Ka -1.56e-2; % 方位向调频率 Delta_f_dop abs(Ta*Ka); …

TEMU电器等产品要求提供CE-LVD,不接受CE-EMC

最近,TEMU平台对CE资质要求越来越严格,针对CE资质又提出了两点新要求。首先,TEMU平台要求提供正式的CE证书,且必须有签发实验室的盖章或者签字。这一要求是为了确保产品符合欧洲市场的安全标准,也是为了保护消费者的利…

【linux】麒麟v10安装Redis哨兵集群(ARM架构)

安装redis单示例的请看:麒麟v10安装Redis(ARM架构) 安装服务器 ​Hostname​IP addressmaster,sentinel192.168.0.1slave1,sentinel192.168.0.2slave2,sentinel192.168.0.3 下载安装包 (三台都操作) wget https://re…

微服务初始和Nacos安装

一)初始微服务: 微服务是将一个大型的,单一的应用程序拆分成多个小型服务,每一个服务负责于特定的业务功能,并且可以通过网络来和其他服务进行通讯,是一个思想,将一个大的项目拆分成多个小的项目,多个小的项…

2023NOIP A层联测19-多边形

有一个正 n n n 边形,每个点的颜色为红色,蓝色,绿色中的其中一种。保证每种颜色至少出现一次且 n n n 边形上相邻的两个点颜色不同。你想要连接 n − 3 n−3 n−3 条对角线,使得对角线把整个图形分成了 n − 2 n−2 n−2 个三…

竞赛选题 深度学习图像分类算法研究与实现 - 卷积神经网络图像分类

文章目录 0 前言1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径,图像尺寸,数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…

kali搭建docker

kali搭建docker 更新kali源 sudo apt update出错 更新一下密钥 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ED444FF07D8D0BF6安装docker sudo apt install docker.io -y #安装docker docker -v #docker版本 sudo systemctl status docker #查看docker…