Vuex模块化

    • 创建命名空间
      • mian.js
      • src/store/index.js
      • src/store/getters.js
      • src/store/modules 各自管理仓库
      • src/store/modules/testVuexModules.js 命名空间模块
    • 组件内提交与获取Vuex的值:
      • 1.异步操作 this.$store.dispatch
      • 2.同步操作 this.$store.commit

创建命名空间

mian.js

import Vue from "vue";
import store from "./store";

new Vue({
  el: "#BYUI_APP",
  router,
  store,
  render: (h) => h(App),
});

src/store/index.js

import Vue from "vue";
import Vuex from "vuex";
import getters from "./getters";

Vue.use(Vuex);
const modulesFiles = require.context("./modules", true, /\.js$/);
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1");
  const value = modulesFiles(modulePath);
  modules[moduleName] = value.default;
  return modules;
}, {});
const store = new Vuex.Store({ modules, getters });
export default store;

src/store/getters.js

const getters = {
	// testVuexModules: 对应命名空间的模块名
  phone: (state) => state.testVuexModules.phone,
  address: (state) => state.testVuexModules.address,
  // arrList(名字自取): "testVuexModules"模块的映射集,方便获取state的值
  arrList:(state) => {
    return state.testVuexModules
  },
};
export default getters;

src/store/modules 各自管理仓库

在这里插入图片描述

src/store/modules/testVuexModules.js 命名空间模块

 const state = {
  address: '',
  phone: '',
};

const mutations = {
  CHANGE_INFO: (state, info) => {
      state.address = info.address;
      state.phone = info.phone;
      // 如果想状态不想因为浏览器刷新而丢失,可以将状态缓存到本地
      // localStorage(数据永久缓存在本地浏览器中)   sessionStorage(临时缓存,有时效)
      //  两者使用方式一致,区别在时效
      localStorage.setItem("GET_PHONE", state.phone)
      // 移除缓存
      localStorage.removeItem('GET_PHONE')
  },
};

const actions = {
  changeInfo({ commit }, info) {
    commit("CHANGE_INFO", info);
  },
};
// 添加namespaced:true的方式使其成为带命名空间的模块
export default { namespaced: true, state, mutations, actions };

组件内提交与获取Vuex的值:

1.异步操作 this.$store.dispatch

//提交数据: testVuexModules:模块名, changeInfo: action方法名
this.$store.dispatch("testVuexModules/changeInfo", this.form)

//获取状态方式 1:对应getters.js的getters对象
this.$store.getters.address

//获取状态方式 2:当需要获取多个state状态,可以通过映射集,减少代码量,增加美观性
//辅助函数mapGetters批量使用状态, arrList: 对应getters.js的属性arrList
import { mapGetters, mapState } from "vuex"
// computed 
computed: {
    ...mapGetters(["arrList"]),
},
 
// 获取数据  
this.arrList.phone

2.同步操作 this.$store.commit

// 提交数据: testVuexModules(模块名), CHANGE_INFO(mutations方法名)
// 注意: 此提交方式需在 namespaced 开启 true 才会生效
this.$store.commit("testVuexModules/CHANGE_INFO", this.form)

// 获取状态方式 1
this.$store.state.testVuexModules.phone

// 获取状态方式 2
import { mapGetters, mapState } from "vuex"

// computed
computed: {
   ...mapGetters(["arrList"]),
    ...mapState({
      getMapState: (state) => state.testVuexModules,
    }),
},

// 获取数据
this.getMapState.phone

获取缓存的值

localStorage.getItem("GET_PHONE")

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot特殊问题处理2——springboot集成flowable实现工作流程的完整教程(一)

在实际项目开发过程中,流程相关的业务实现采用工作流会异常清晰明了,但是Activity学习成本和开发难度对追求效率的开发工作者来说异常繁琐,但是作为Activity的亲儿子之一的flowable,其轻量化的使用和对应的api会让开发者感受简单&…

毕业答辩制作PPT【攻略】

毕业答辩制作PPT【攻略】 前言版权毕业答辩制作PPT【攻略】一、WPS AI 15天免费会员二、AI文档生成PPT三、修改完善PPT 最后 前言 2024-06-14 23:43:05 以下内容源自《【攻略】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN…

快捷方式(lnk)--加载HTA-CS上线

免责声明:本文仅做技术交流与学习... 目录 CS: HTA文档 文件托管 借助mshta.exe突破 本地生成lnk快捷方式: 非系统图标路径不同问题: 关于lnk的上线问题: CS: HTA文档 配置监听器 有效载荷---->HTA文档--->选择监听器--->选择powershell模式----> 默认生成一…

记某大学的一次EduSRC的挖掘

0x1 前言 漏洞由来简述 首先讲下这个漏洞的由来吧,这类漏洞叫做OSS储存桶漏洞,是阿里云OSS存储云安全的漏洞,也是一个相对来讲比较新鲜的安全漏洞。我是在进行对某大学的小程序进行文件上传测试的时候发现返回包的URL里面有“OSS”字段&…

Wilcom PE 威尔克姆绣花软件下载安装;Wilcom PE 广大绣花制版师必备软件!

Wilcom PE这款软件不仅具备强大的设计功能,更在用户体验上下足了功夫,使得刺绣图案的创作变得更为简单、高效。 在Wilcom PE的丰富工具箱中,用户可以发现各种精心设计的工具,它们如同刺绣师手中的魔法棒,将创意变为现…

深度解析RocketMq源码-持久化组件(一) MappedFile

1. 绪论 rocketmq之所以能够有如此大的吞吐量,离不开两个组件,一个是利用netty实现的高性能网络通信组件;另一个就是利用mmap技术实现的存储组件。而在rocketmq的存储组件中主要有三个组件,分别是持久化文件commitLog&#xff0c…

【尚庭公寓SpringBoot + Vue 项目实战】移动端浏览历史(二十二)

【尚庭公寓SpringBoot Vue 项目实战】移动端浏览历史(二十二) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】移动端浏览历史(二十二)1、业务介绍2.接口开发2.1.分页查询浏览历史列表2.2.保存浏览历史 1、业务介绍 浏览历史指的…

基于STM32和人工智能的智能小车系统

目录 引言环境准备智能小车系统基础代码实现:实现智能小车系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统4.4 用户界面与数据可视化应用场景:智能小车管理与优化问题解决方案与优化收尾与总结 1. 引言 随着机器人技术的发展,智能小…

【Golang】Steam 创意工坊 Mod 文件夹批量重命名

本文将介绍一个使用Go语言编写的脚本,其主要功能是解析XML文件并基于解析结果重命名文件夹。这个脚本适用于需要对文件夹进行批量重命名,并且重命名规则依赖于XML文件内容的情况。 脚本功能概述 Steam创意工坊下载的Mod文件夹批量重命名为id名称 运行前…

【docker入门】

在软件开发过程中,环境配置是一个至关重要的步骤,它不仅影响开发效率,也直接关联到软件的最终质量。正确的环境配置可以极大地减少开发中的潜在问题,提升软件发布的流畅度和稳定性。以下是几个关键方面,以及如何优化环…

网上预约就医取号系统

摘 要 近年来,随着信息技术的发展和普及,我国医疗信息产业快速发展,各大医院陆续推出自己的信息系统来实现医疗服务的现代化转型。不可否认,对一些大型三级医院来说,其信息服务质量还是广泛被大众所认可的。这就更需要…

如何制定新版FMEA培训后的知识应用考核机制?

随着新版FMEA的推出,如何确保培训后的知识能够得到有效应用,并转化为实际工作中的能力,成为了企业关注的焦点。本文,深圳天行健企业管理咨询公司将分享如何制定一套科学、实用的新版FMEA培训后知识应用考核机制,以助力…

四、SpringMVC实战:构建高效表述层框架(二)

二、SpringMVC接收数据 2.1 访问路径设置 RequestMapping注解的作用就是将请求的 URL 地址和处理请求的方式(handler方法)关联起来,建立映射关系。 SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的方法来处理这个请求…

第六十六天打卡 | 卡码网101 孤岛的总面积、卡码网102 沉没孤岛、卡码网103 水流问题、卡码网104 建造最大岛屿

卡码网101 孤岛的总面积 这一题在昨天的基础上,将比较得出最大孤岛面积的逻辑改为统计所有孤岛面积之和的逻辑即可。 最近做项目的时候也发现,很多时候代码逻辑能够复用最好就不要再自己写,防止出错,当然刷代码题的时候不…

环境配置04:Pytorch下载安装

说明: 显存大于4G的建议使用GPU版本的pytorch,低于4G建议使用CPU版本pytorch,直接使用命令安装对应版本即可 GPU版本的pytorch的使用需要显卡支持,需要先安装CUDA,即需要完成以下安装 1.查看已安装CUDA版本 GPU对应…

基于DPU的云原生裸金属网络解决方案

1. 方案背景和挑战 裸金属服务器是云上资源的重要部分,其网络需要与云上的虚拟机和容器互在同一个VPC下,并且能够像容器和虚拟机一样使用云的网络功能和能力。 传统的裸金属服务器使用开源的 OpenStack Ironic 组件,配合 OpenStack Neutron…

Uncaught TypeError: Cannot read properties of null (reading ‘isCE‘)

问题描述 使用 view-ui-plus 加 vue3 开发项目,本地启动项目正常,但其他人将代码拉下来,启动项目时报错 Uncaught TypeError: Cannot read properties of null (reading isCE): 原因分析: 尝试将 mode_nodules 文件删…

量子计算:1 从薛定谔的猫开始

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则…

C++ 编程技巧分享

侯捷 C 学习路径:面向对象的高级编程 -> STL库 -> C11新特性 -> cmake 1.1. C 与 C的区别 在C语言中,主要存在两大类内容,数据和处理数据的函数,二者彼此分离,是多对多的关系。不同的函数可以调用同一个数据…

【Linux进程】手把手教你如何调整----进程优先级(什么是优先级?为什么要有优先级?)

目录 一、前言 二、优先级的基本概念 🥝 什么是优先级? 🍍 为什么要有优先级? 三、如何查看并修改 --- 进程优先级 🍇 PRI and NI 🔥PRI🔥 🔥NI🔥 &#x1f3…