vuex的modules和辅助函数

news2025/1/10 10:11:27

一、回顾:vuex状态管理器

1、版本问题:vue2对应的是vuex3;vue3对应的vuex4
2、vuex作用:每个vuex中都有一个Store(仓库),用于管理vue项目中用到的状态变量(属性)。vuex维护的是一个单一的状态树
    • vuex的五大属性:
const store = new Vuex.Store({
state:{}, //定义vue项目中使用的状态变量
getters: {}, //用于获取state中状态变量的值,类似于计算属性
mutations:{},//用于修改state中变量的值。只能是同步代码
actions: {}, //通过commit方法提交修改state的请求给mutations间接实现对state的修改。可以放异步代码(axios)
modules:{} //配置多个子模块的store
})
export default store
强调:

(1)除了state之外,其他属性都是复数

(2)任何时候组件都不能直接修改state,只能通过mutation去修改

4、vuex的工作流程

View —> Actions —> Mutations —-> state —-> Getters —-> View

二、vuex中的模块化(modules)和命名空间(namespaced)

1、vuex模块化的原因:vuex维护的是一个单一的状态树,对于复杂的vue项目,若只有一个store,则该store就会非常臃肿难以维
护,为了解决这个问题,vuex允许在vue项目中将store进行模块化的处理,即可以将一个大的store分解成若干个小的store,每个
store都有自己的state、mutation、action、getter
2、命名空间:

(1)在默认情况下,模块内部的state、mutation、action、getter是全局的,即所有组件都可以使用

(2)若想让store有更好的封装性和复用性、在使用不会产生歧义,可以在store定义时加入 namespaced:true配置,当模块注册

后,所有的state、mutation、action、getter都会根据模块注册的路径调整命名

三、vuex中的辅助函数(四大函数/map写法)

    • …mapState:用于解构state中状态属性

//基础写法:
count(){
    return this.$store.state.cout
}
//简化写法
...mapState(['count'])
    • …mapGetters:用于解构getters中定义的方法

//基础写法
getAge() {
      return this.$store.getters.getAge  
    }
//简化写法
...mapGetters([''])
    • …mapMutations:用于解构mutations中的方法,注意传参:在调用时直接传参

//基础写法
    handlerAdd(){ //同步加1:触发mutations中的addCount方法
      this.$store.commit('addCount',{ num: 1 })
    },
    handlerSub(){ //同步减1:触发mutations中的subCount方法
      this.$store.commit('subCount',{ num: 1 })
    }
//简化写法
...mapMutations({
      handlerAdd: 'addCount',
      handlerSub: 'subCount'
   }),
//html中直接传参的写法
<button @click="handlerAdd({num:1})">同步加1</button>
<button @click="handlerSub({num:1})">同步减1</button>
4、…mapActions:用于解构actions中的方法
//基础写法
handlerAddAsyn(){ //异步加1:触发actions中addCountAsyn方法
      this.$store.dispatch('addCountAsyn')
    },
handlerSubAsyn(){ //异步减1:触发actions中subCountAsyn方法
      this.$store.dispatch('subCountAsyn')
    }

//简化写法
...mapActions({
      handlerAddAsyn: 'addCountAsyn',
      handlerSubAsyn: 'subCountAsyn'
    })

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

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

相关文章

工作常用cron总结

一、cron表达式详解 corn从左到右&#xff08;用空格隔开&#xff09;&#xff1a; 秒 分 小时 日 月 周 (星期中的日期&#xff0c;1代表周日&#xff0c;7代表周六) 年 定时任务统计 数据同步 0 0 10 * * &#xff1f; 每天上午10点触发…

Spring 整合Mybatis。

目录 一、环境准备 1、Mybatis 环境 2、整合思路分析 二、Spring整合Mybatis 三、Spring整合Junit 一、环境准备 1、Mybatis 环境 ▶ 步骤1 : 准备数据库表 Mybatis是来操作数据库表&#xff0c;所以先创建一个数据库及表 create database spring_db character set utf8; …

LeetCode刷题系列 -- 1008. 前序遍历构造二叉搜索树

给定一个整数数组&#xff0c;它表示BST(即 二叉搜索树 )的 先序遍历 &#xff0c;构造树并返回其根。保证 对于给定的测试用例&#xff0c;总是有可能找到具有给定需求的二叉搜索树。二叉搜索树 是一棵二叉树&#xff0c;其中每个节点&#xff0c; Node.left 的任何后代的值 严…

JVM的理解(垃圾回收算法和类加载过程)

文章目录1、JVM的位置2、JVM的体系结构3、JVM组件3.1、类加载器&#xff08;加载class文件&#xff09;3.1.1、类加载器的执行步骤3.2、PC寄存器3.3、方法区3.4、栈3.5、堆4、GC算法4.1、引用计数法4.2、复制算法1、模型2、原理图4.3、标记清除4.4、标记压缩总结&#xff1a;1、…

2023年了学Java还能找到工作么?

Java人才需求缺口巨大 为何还有人找不到工作&#xff1f; 近两年&#xff0c;传统企业开始数字化转型&#xff0c;各企业对互联网IT技术人才呈现井喷趋势。对于进可攻前端、后可守后端的Java程序员而言&#xff0c;市场对他们青睐有加&#xff0c;薪资更是水涨船高。然而在…

Cesium 本地化部署和新增sandcastle案例

源码下载git clone https://gitee.com/mirrors-gis/cesium.gitcd cesium npm install // or yarn install构建 因为下载的源码,还没有构建出cesium的api,以及api对应的文档 ,如果此时直接运行 npm start ,会启动一个8080端口的一个服务,通过 http://localhost:8080 可以看…

SpringCloud Alibaba_Nacos服务注册和配置中心

目录一、Nacos简介1.为什么叫Nacos2.是什么3.能干嘛4.去哪下5.各种注册中心比较二、安装并运行Nacos三、Nacos作为服务注册中心演示1.官网文档2.基于Nacos的服务提供者3.基于Nacos的服务消费者4.服务注册中心对比4.1 Nacos和CAP4.2 Nacos支持AP和CP模式的切换四、Nacos作为服务…

sonar的安装以及使用

sonar的安装以及使用简介1. sonar是什么2. SonarQube与Sonar安装1.下载sonarqubexxx.zip并且解压即可:2.配置数据库3.重启sonarQube会自动建表。使用1.下载sonar-scanner:(这个工具是对源码进行扫描&#xff0c;并将结果保存到数据库以便用上面的sonarqube进行分析)2.配置mysql…

Spring Cloud 以及 Spring Cloud Alibaba 使用总结

title: Spring Cloud 以及 Spring Cloud Alibaba 使用总结 date: 2023-01-13 11:54:15 tags: Spring categories:Spring cover: https://cover.png feature: false 1. 版本对应 官网版本说明&#xff1a;版本说明 alibaba/spring-cloud-alibaba Wiki (github.com) 这里使用 …

通过应用场景深度理解监控宝在业务中的实践价值

近年来&#xff0c;越来越多的企业实现了核心业务系统互联网化&#xff0c;无论是企业内部员工还是企业外部用户或是供应链上下游合作伙伴&#xff0c;均通过互联网和Web应用与企业建立起了紧密的联系。基于此&#xff0c;网络性能对企业业务的影响也变得越来越重要&#xff0c…

阿里云服务器使用docker部署springboot+mysql+redis项目

首先&#xff0c;由于springboot中使用的内置的tomcat&#xff0c;需要讲将ttp转为https的自行搜索博客把&#xff1a; 步骤大概是再阿里云上注册免费SSL证书&#xff0c;下载证书后 拖到项目资源目录下&#xff0c;配置application.properties相关属性 下面引出博客主要内容……

校园网免认证上网的方法

很多时候&#xff0c;当流量不够用时&#xff0c;看着周围那么多热点又连不上&#xff0c;是不是有点心痒痒呢&#xff1f;那么有没有办法不需要要通过这些热点的认证即可上网呢&#xff1f;当然是有的。另外在此强调一点&#xff0c;本教程仅用于学习测试用途&#xff0c;请勿…

【靶机】vulnhub靶机my_file_server2

靶机下载地址&#xff1a;My File Server: 2 ~ VulnHubip&#xff1a;192.168.174.144Kali&#xff1a;192.168.174.128使用arp-scan扫描到ip是使用nmap扫描开放的端口信息&#xff0c;发现靶机开放端口信息如下21端口ftp服务&#xff0c;允许匿名&#xff08;anonymous&#x…

编译安装nacos集群部署

Nacos 基于 java 开发的&#xff0c;运行依赖于 java 环境。依赖 64 bit JDK 1.8服务器准备&#xff1a;192.168.11.139、192.168.11.141、192.168.11.142 1.首先上传jdk的包 三台都操作tar xzf jdk-8u121-linux-x64.tar.gz -C /usr/local/ 解压jdk的包cd /usr/local/ 切换至解…

计算机图形学 第9章 自由曲线曲面

第8章不学 目录 # 学习目标 # 消隐 ## 定义 1.线框模型 2.表面模型 3.实体模型 双表结构 定义三维顶点类 定义表面类 读入立方体的点表 读入立方体的面表 1.柏拉图多面体 柏拉图多面体对偶性 正四面体 正八面体 正十二面体 黄金数 黄金矩形 黄金三角形 光滑物体 …

Spring Bean 的生命周期

文章目录一、前言二 、Bean 的生命周期2.1 Bean 的定义信息2.2 Bean 的创建2.3 Bean 的使用2.4 Bean 的销毁2.5 循环依赖2.5.1 什么是循环依赖2.5.2 Spring 解决循环依赖2.5.2.1 三级缓存2.5.2.2 提前暴露2.5.3 注意2.5.3.1 三级缓存结构中 map 分别存储什么类型对象2.5.3.2 三…

JVM-内存与垃圾回收-1.JVM与Java体系结构

1.JVM与Java体系结构 1. JVM&#xff1a;跨语言的平台 Java是目前应用最为广泛的软件开发平台之一。随着Java以及Java社区的不断壮大Java 也早已不再是简简单单的一门计算机语言了&#xff0c;它更是一个平台、一种文化、一个社区。 ● 作为一个平台&#xff0c;Java虚拟机扮…

机器人中的数值优化之BFGS(nonconvex and smooth)

本文ppt来自深蓝学院《机器人中的数值优化》 目录 1 wolfe conditions 2 cautious update 3 BFGS for nonconvex functions 1 wolfe conditions 当我们需要搜索方向是下降方向时&#xff0c;一定要让近似hessian的矩阵正定&#xff0c;这就需要满足wolfe条件 首先需要满…

34. 实战:基于某api实现歌曲检索与下载(附完整源代码)

目录 前言 &#xff08;相关链接在评论区&#xff09; 目的 &#xff08;相关链接在评论区&#xff09; 思路 &#xff08;相关链接在评论区&#xff09; 代码实现 1. 访问某音乐平台&#xff08;链接放在评论区了&#xff09;&#xff0c;抓包搜索接…

BUUCTF reverse题解汇总

本文是BUUCTF平台reverse题解的汇总 Page1 easyrereverse1reverse2内涵的软件新年快乐xorhelloworldreverse3不一样的flagSimpleRevJava逆向解密[GXYCTF2019]luck_guy[BJDCTF2020]JustRE刮开有奖简单注册器pyre[ACTF新生赛2020]easyrefinditrsa[ACTF新生赛2020]rome[FlareOn4]…