Vuex基础概念用法(新手入门)

news2024/10/7 4:28:44

一.Vuex概念及解释

定义: vue全局状态管理器。有了Vuex在任意组件/页面都可以访问vuex数据,当数据更新的时候,引用vuex的组件视图会自动更新。也就是说Vuex实现数据全局共享,响应式更新。

1.state(存放状态)

$store.store.xxx访问
提供唯一的公共数据源,所有共享的数据统一放到store的state进行储存,相似与data
例如:

state:{userlnfo:{name:"mumu",score:2500}}

组件中访问 $store.state.userlnfo.score

2.mutations(改变数据的唯一方法)

更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。Vuex 中的 mutation 非常类似于事件:每个 mutation 都有一个字符串的事件类型 (type)和一个回调函数 (handler)。这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数:
$store.commit(“xxx”,data)

例如:

ADD_SCORE(state,data=100Hstate.userlnfo.score+=data}

组件中访问$store.commit("ADD_SCORE",200)

3.actions(异步操作数据的方法)

Action和Mutation相似,Mutation 不能进行异步操作,若要进行异步操作,就得使用Action
$store.dispatch.(“xxx”,data)
例如:

setScore(context,data){
setTimeout((=>{
context.commit("ADD_SCORE"",data);),2000)
}

组件中访问
$store.dispatch("setScore",200)

4.getters(从现有的状态计算新的数据)

类似于vue中的computed,进行缓存,对于Store中的数据进行加工处理形成新的数据
$store.getters.xxx

例如:

getters:{
gold(state){return Math.floor(state.userlnfo.score/100)}}

组件中访问
$store.getters.gold

5.modelu(子模块)

当遇见大型项目时,数据量大,store就会显得很臃肿
为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割:

import cart from './modules/cart.js'modules:{
cart}

//cart.js
export default{state:0,
getters:0,mutations:0,actions:(.
namespace:true,l/l开启模块的命名空间}


组件中访问模块的state需要带模块名称(cart)
$ store.state.cart.goods
组件访问getters,actions,mutations不需要带模块名$store.getters.totalPrice

开启namespace:true命名空间的模块,
getters,mutations,actions在组件中访问的时候都要带模块名this.$store.dispatch("cart/addCart",data)

二. 第一个参数注意点

  1. actions第一个参数context
    1.context相当于组件中的$store
    $store代表整个vuex,整个仓库
    context.commit("mutations方法名",data)

context.dispatch("actions中的方法名".data)

context.state.数据名
context.getters.数据名
2. mutations第一个参数state
3. getters第一个参数state数据

三.vuex的映射方法

vuex中的state与getters映射为组件的data数据(只读)
vuex中的actions和mutations映射为组件的methods方法

1.mapState

01导入
import {mapState,mapGetters,mapActions,mapMutations}from 'vuex'
02 在computed去计算

computed:{
/映射带模块cart...mapState({
goods:state=>state.cart.goods}),
//不带模块
...mapState(["userlnfo"])}

03 在组件使用映射出来属性
<p>{igoods}}</p>
<p>ffuserlnfo}}</p>

2.mapGetters

01导入
02在computed去计算
computed:{ ...mapGetters(["totalPrice"])}
03在组件中使用
<p>总价格:fftotalPrice)}</p>

3.mapActions

01导入
02在methods方法里面扩展
methods:{ ...mapActions(["delCart"])}
03在组件中调用方法
<div@click="delCart(good.id)">

4.mapMutations

01导入
02在methods方法里面扩展
methods:{ ...mapMutations(["ADD_SCORE""]))
03在组件中调用方法
<div@click="ADD_SCORE(500)">

当我们写购物车的时候通常会放在Vuex里,以下两张图可以方便大家理解购物车的逻辑。
在这里插入图片描述

在这里插入图片描述
以上就是全部内容啦,感谢观看!!!

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

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

相关文章

《flask》flask+mqtt联动快速上手

简介 本文旨在介绍如何快速上手联动flask mqtt&#xff0c;本文将会给出一个简单的demo&#xff0c;用于演示在如何通过访问flask接口来触发mqtt&#xff0c;并在flask运行的基础的上对mqtt进行订阅。 快速上手 因为有项目需求&#xff0c;所以需要flask mqtt进行联动&…

Docker网络中篇-docker网络的四种类型

通过上一篇学习,我们对docker网络有了初步的了解。本篇,咱们就来实战docker网络。 docker网络实战 实战docker网络,我们将从以下几个案例来讲解 1:birdge是什么? 2:host 3:none 4:container 实战网络类型如下: 在docker中,网络的配置是以json格式存在的,下面…

知识变现创业者必读——《知识变现实操手册》

现在越来越多人&#xff0c;正在跑步进入知识变现创业这个赛道。 为什么进入这个赛道&#xff0c;因为能赚钱钱啊&#xff0c;大部分人是受到了知识变现大咖们日入万元&#xff0c;月入十万&#xff0c;这些赚钱效益的刺激&#xff0c;匆忙进入的。 我问一句&#xff0c;你知识…

网络路由技术和协议

网络路由是网络通信的重要组成部分。路由可帮助您的网络组件从可用选项中选择最佳网络路径。这使得网络通信高效可靠。启用此功能的硬件组件称为路由器。监控和管理路由器是网络管理员日常工作中不可或缺的一部分。由于路由器可以决定网络连接和可用性的成败&#xff0c;因此了…

MATLAB-plot绘图函数

plot函数是MATLAB中最核心的二维绘图函数&#xff0c;它有多种语法格式可以实现多种功能。 plot函数的基本调用格式如下。 plot(y) 当y为向量时&#xff0c;是以y的分量为纵坐标、元素序号为横坐标&#xff0c;用直线依次连接数据点&#xff0c; 绘制曲线。若y为实矩阵&#…

【技术分享】如何实现功能完备性能优异的RTMP、RTSP播放器?

技术背景 这几年&#xff0c;我们对接了太多有RTSP或RTMP直播播放器诉求的开发者&#xff0c;他们当中除了寻求完整的解决方案的&#xff0c;还有些是技术探讨&#xff0c;希望能借鉴我们播放端的开发思路或功能特性&#xff0c;完善自己的产品。 忙里偷闲&#xff0c;今天我…

【GO】K8s 管理系统项目[API部分--Pv]

K8s 管理系统项目[API部分–Pv] 1. 接口实现 service/dataselector.go type pvCell corev1.PersistentVolumefunc(p pvCell) GetCreation() time.Time {return p.CreationTimestamp.Time }func(p pvCell) GetName() string {return p.Name }2. Pv功能 service/pv.go 2.1 获…

沙龙预告|2023 年展望 Web3 Crypto

全长 621 字&#xff0c;预计阅读 3 分钟 作者&#xff1a;MiX 起起落落的2022年即将结束&#xff0c;随着传统金融机构的采用和 Web3 创新的不断深入&#xff0c;加密领域已经成为全球资本和技术创新的重要组成部分。 总结2022&#xff0c;展望2023&#xff0c;这对每一位加…

【数据库与缓存保持一致性】

文章目录1. 方案1先更新数据库&#xff0c;再更新缓存先更新缓存&#xff0c;在更新数据库2. 方案2先更新数据库&#xff0c;在删缓存先删缓存&#xff0c;在更新数据库3. 方案3—如何保证两个操作都能执行成功&#xff1f;重试机制订阅 MySQL binlog1. 方案1 先更新数据库&am…

S7-1200PLC与组态王进行TCP通信的基本方法和步骤

S7-1200PLC与组态王进行TCP通信的基本方法和步骤 如下图所示,打开博途软件,新建一个项目,设置该PLC的IP地址为:192.168.1.102, 如下图所示,在OB1中编写一段简单的启保停程序, 如下图所示,打开Kingview组态王软件,点击文件—新建工程, 新建一个项目,如下图所示…

化工企业安全风险管控数字化解决方案

当前我国化工行业的基础能力缺失问题非常严重。由于一些共性技术的缺失&#xff0c;给以化工行业为代表的关键基础工业的产业安全带来诸多隐患。粗放式发展 带来的环保安全问题&#xff0c;不仅造成了巨大的资源浪费和社会成本的增加&#xff0c;同 时也使整个产业的发展环境恶…

SpringBoot+Vue前后端分离项目搭建

好久没写文章了&#xff01;&#xff01;&#xff01; 企业级项目&#xff0c;开袋即食。扩展、修改起来非常方便 系统基本功能 用户管理&#xff1a;提供用户的相关配置&#xff0c;新增用户后&#xff0c;默认密码为&#xff1a;Pass_123角色管理&#xff1a;对权限与菜单…

基于注解的AOP之切入点表达式的语法和获取连接点的信息以及切入点表达式的重用

基于注解的AOP之切入点表达式的语法和获取连接点的信息以及切入点表达式的重用 1.切入点表达式的语法 ①作用 ②语法细节 用*号代替“权限修饰符”和“返回值”部分表示“权限修饰符”和“返回值”不限 在包名的部分&#xff0c;一个“*”号只能代表包的层次结构中的一层&…

Vue3+TS+Vant3——增删改input和通过双页面进行增删改操作

Vue3TSVant3——增删改input和通过双页面进行增删改操作 两种方案&#xff1a; 第一种点击添加按钮添加一项&#xff0c;缺点&#xff1a;页面过于臃肿&#xff0c;用户体验较差 第二种&#xff1a;分成两种页面进行添加等操作 先说一下第一种&#xff0c;我这里用到了va…

Linux下Qt程序用qBreakpad定位崩溃位置

目录1. 使用qBreakpad1.1. 下载1.2. 编译1.3. 使用2. 使用dump文件2.1. 编译breakpad2.2. 解析dmp文件生成sym文件2.3. 解析dmp可能遇到的问题问题一Qt程序的release版本交付给用户或者测试后&#xff0c;如果出现崩溃&#xff0c;很多时候都比较难重现&#xff0c;如果程序能自…

赛卓电子冲刺科创板上市:计划募资11亿元,股东包括尚颀资本等

12月28日&#xff0c;赛卓电子科技&#xff08;上海&#xff09;股份有限公司&#xff08;下称“赛卓电子”&#xff09;在上海证券交易所递交招股书&#xff0c;准备在科创板上市。本次冲刺上市&#xff0c;赛卓电子计划募资11亿元&#xff0c;将用于车规级芯片研发及产业化项…

高级网络复习——防火墙,OSPF协议,rip协议,三层,DHCP中继知识题解(带答案)

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 简答题 二.选择题 前言 本章讲解讲解防火墙&#xff0c;OSPF协…

java多线程(9):线程状态

1 五大状态 2 线程方法 3 停止线程 不推荐使用JDK提供的 stop()、 destroy()方法。【已废弃】推荐线程自己停止下来建议使用一个标志位进行终止变量 &#xff0c;当flagfalse&#xff0c;则终止线程运行。package xiong.demo3;public class TestStop implements Runnable{//1.…

从DTCC2022盘点各大厂商如何看待数据库发展趋势

DTCC 2022 已落下帷幕有些时日&#xff0c;回顾大会上的一些分享&#xff0c;尤其是头一天上午几大数据库厂商均在演讲一开始纷纷表达了对数据库发展趋势的看法。从各个厂商的观点来看&#xff0c;对数据库发展趋势基本属于是不谋而合&#xff0c;未来数据库的样子离不开以下这…

MATLAB形态学的基本运算膨胀和腐蚀(开、闭运算)

形态学中两种基本的操作是膨胀和腐蚀&#xff0c;膨胀是指在图像中为其边界添加像素点&#xff0c;而腐蚀是其逆过程。对应的添加和移除像素点数依赖于处理图像结构元素矩阵的大小和形式。 一.膨胀处理 膨胀的运算符为⊕, A用B来膨胀写作A⊕B&#xff0c;MATLAB中提供了预定义…