vuex如何进行状态管理?
**Vuex:是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间数据共享。**
(1) 如果是Vue2的环境,不能使用vuex4的版本,所以我们需要安装vuex3以下的版本安装。
```
创建项目:vue create vue2
访问vue2目录:cd vue2
启动脚手架:npm或yarn serve
```
**安装vuex:**
由于vue2不能使用vuex4的版本,所以在安装时需要指定版本3,npm i vuex@3 --save
**配置vuex:**
步骤一:新建文件夹store,文件夹下新建index.js文件
步骤二:index.js中完成配置:还没有配置数据和事件
```
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
// 用来存储数据
const state = {
count:0
}
// 响应组件中的事件
const actions = { }
// 操作数据
const mutations = { }
// 用来将state数据进行加工
const getters = { }
// 新建并暴露store
export default new Vuex.Store({
state,
actions,
mutations,
getters
})
```
**步骤三:main.js中引入**
```
import Vue from 'vue'
import App from './App.vue'
import store from './store/index';
Vue.config.productionTip = false
new Vue({
render: h => h(App),
store}).$mount('#app')
```
(2)如果是Vue3的环境,使用vuex4的版本。 npm install vuex@next
**配置vuex:**
步骤一:新建文件夹store,文件夹下新建index.js文件
步骤二:index.js中完成配置:还没有配置数据和事件
```
import { createStore } from 'vuex'
export default createStore({
state: {
//数据存放的位置
count: 0
},
mutations: { },
actions: { },
modules: { }
})
```
**步骤三:在main中放入内容**
```
import { createApp } from 'vue'
import App from './App.vue'
import store from './store/index.js';
createApp(App).use(store).mount("#app")
```
**Vuex中的核心概念:**
1、state:提供唯一的公共数据源,所有共享的数据都要放到store中的state中。
(1) 组件访问state中的数据的第一种方法:
首先在state中创建变量值count
```
const state = {
count:0
}
```
然后再调用的组件中需要变量{{$store.state.count}}
(2)第二种方法:利用vuex中的mapState方法
首先引入mapState方法:import { mapState } from 'vuex';
然后在通过刚才导入的mapState函数,将当前组件需要的全局数据,映射为当前组件的computed计算属性,这样在需要count变量的地方这样引用**{{count}}**就可以了
```
computed: {
...mapState(['count'])
}
```
2、mutations:用于变更store中的数据,我们不能直接操作store中的数据,所以只能在mutations操作。
(1)mutations变更数据的第一种方法
```
首先mutations中定义函数add,state是固定的传递的值,如下所示:
mutations: {
add(state) {
state.count++;
}
}
```
也可以传递参数写法如下:
```
mutations: {
add(state, num) {
state.count+=num;
}
}
```
然后在需要调用的组件的methods方法中定义函数,
用this.$store.commit('add(调用mutations中定义的方法)')
```
methods:{
addData(){
this.$store.commit('add')
}
}
```
addData这个方法应用在组件中某个操作上。
(2)mutations变更数据的第二种方法
首先在vuex中按需引入mapMutations
import { mapMutations } from 'vuex';
通过刚才导入的mapMutations函数,将需要的mapMutations函数,映射为当前组件的methods方法
```
methods:{
...mapMutations(["add"])
},
然后这个add方法可以直接用在相关的组件上。
```
3、actions: 异步操作 State中的数据
(1) actions变更数据的第一种方法,定义异步函数,固定传参context 对象,payload是参数,可以调用 context.commit 提交一个 mutation
```
actions: {
addAsync(context, payload) {
setTimeout(() => {
context.commit('add', payload);
}, 1000);
},
},
```
然后在 Vue 组件中,我们可以使用 dispatch 方法触发 Action。并且传递参数
this.$store.dispatch(' addAsync', 10);
(2) actions变更数据的第二种方法,还是在需要使用的组件中从vuex按需导入mapActions。
import { mapActions } from 'vuex';
通过刚才导入的mapActions函数,将需要的mapActions函数,映射为当前组件的methods方法
```
methods:{
...mapActions(["plus"]),
},
```
4、Getters: 用于将 State中的数据加工处理形成新的数据。类似与vue中的computed属性
(1) getters处理数据的第一种方法
首先定义getters中处理函数的方法如下:
```
const getters = {
showNum(state) {
return '当前最新的数量是:' + state.count
}
}
```
然后在使用的组件中直接调用:this.$store.getters.名称
(2) getters处理数据的第二种方法,还是在需要使用的组件中从vuex按需导入mapGetters。
import { mapGetters } from 'vuex';
通过刚才导入的mapGetters函数,将需要的mapGetters函数,映射为当前组件的computed方法。
```
computed: {
...mapGetters(['showNum'])
}
```
然后在使用的组件中直接调用:showNum这个名称
相关文章:
vuex如何进行状态管理?
**Vuex:是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间数据共享。** (1) 如果是Vue2的环境,不能使用vuex4的版本,所以我们需要安装vuex3以下的版本安装。 创建项目:vue crea…...
嵌入式Linux QT+OpenCV基于人脸识别的考勤系统 项目
此项目是基于人脸识别的考勤系统开发,包括如下模块: 1、人脸识别考勤系统GUI界面设计,包括: (1)Qt环境(window环境/linux环境) ; (2)Qt工程创建分析; &am…...
通过阿里云 Milvus 与 PAI 搭建高效的检索增强对话系统
背景介绍 阿里云向量检索服务Milvus版(简称阿里云Milvus)是一款云上全托管服务,确保了了与开源Milvus的100%兼容性,并支持无缝迁移。在开源版本的基础上增强了可扩展性,能提供大规模 AI 向量数据的相似性检索服务。相…...
评估大语言模型在药物基因组学问答任务中的表现:PGxQA
这篇文献主要介绍了一个名为PGxQA的资源,用于评估大语言模型(LLM)在药物基因组学问答任务中的表现。 研究背景 药物基因组学(Pharmacogenomics, PGx)是精准医学中最有前景的领域之一,通过基因指导的治疗…...
在本地和远程转储域控制器哈希
更多内网知识课前往无问社区查看http://www.wwlib.cn 无凭据 - ntdsutil 如果您没有凭据,但有权访问 DC,则可以使用 lolbin ntdsutil.exe转储 ntds.dit: powershell "ntdsutil.exe ac i ntds ifm create full c:\temp q q" 我们…...
基于SSM+Vue的心理咨询问诊系统+LW示例参考
1.项目介绍 项目角色:管理员、患者(普通用户)、医师项目模块:医生管理、患者管理、科室管理、咨询管理、预约管理、急救知识、患者病历等测试环境:idea2024、tomcat8.5、maven3、jdk8、nodeV14.16.1、mysql5.7技术栈&…...
基于TMS320X281X/F28335的DSP入门到精通01_如何开始DSP的学习与开发
本部分开始基于《手把手教你学DSP—基于TMS320X281X》,《手把手教你DSP基于MS320F28335 》、《TMS320X281x DSP原理及C程序开发》,另外结合B站视频进行DSP嵌入式的学习。 《手把手教你学DSP—基于TMS320X281X》介绍的相对更为基础和详细,《手…...
Java爬虫获取1688 item_search_img接口详细解析
概述 1688作为中国领先的B2B电商平台,提供了丰富的API接口供开发者获取商品信息。item_search_img接口允许通过图片搜索商品,这对于需要基于图片进行商品查找的应用场景非常有用。本文将详细介绍如何使用Java爬虫技术获取1688的item_search_img接口数据…...
Java 连接 FTP 服务器全解析
Java 连接 FTP 服务器全解析 一、引言 在许多企业级应用和数据处理场景中,与 FTP 服务器进行交互是一项常见且重要的任务。Java 提供了强大的工具和库来实现与 FTP 服务器的连接、文件传输、目录操作等功能。本文将详细介绍如何使用 Java 连接 FTP 服务器…...
字节跳动C++面试题及参考答案(下)
说说B 树 b + 树 B 树: B 树是一种平衡的多路查找树,它的设计目的是为了减少磁盘 I/O 操作,适用于存储大量的数据并进行高效的查找、插入和删除操作。B 树的节点可以有多个子节点(通常称为多路),每个节点包含多个关键字,关键字之间是有序的。 B 树的结构特点包括:根节点…...
Rabbit MQ知识总结
1.什么是Rabbit MQ? Rabbit MQ是一个开源的消息代理软件,它实现了高级消息队列协议(AMQP); 基本概念 消息:消息是在应用程序之间传递的数据单元。可以是简单的文本信息,可以是复杂的对象。队列:队列是消息的容器&am…...
未来将要被淘汰的编程语言
COBOL - 这是一种非常古老的语言,主要用于大型企业系统和政府机构。随着老一代IT工作人员的退休,COBOL程序员变得越来越少。Fortran - 最初用于科学和工程计算,Fortran在特定领域仍然有其应用,但随着更现代的语言(如Py…...
GO环境安装和配置
安装go环境 wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz -P /usr/local或者去官网下载安装包 tar -xzf go1.23.4.linux-amd64.tar.gz sudo mv go /usr/local export GOROOT/usr/local/go export GOPATH$HOME/go export PATH$PATH:/usr/local/go/bin source ~/.bashr…...
面试题整理(四)
1.Max transition,leakage优化,hold time ,setup time violation修复的顺序是? 答:先把max transition修复掉,如果max transition有violation,意味着其超出了查找表范围之外,所以计算得到的delay都不是很准的。 其次是把setup修复了,因为setup相对来说,需要减少cell…...
mathtype中如何在公式和序号之间加点
1,右编号插入公式 2,打开样式面板(ctrlshiftalts) 3,选中MTDisplayEquation样式,右击修改 4,点击格式,弹出下拉列表,点击制表位 5,先选中34.67字符&#…...
【电源专题】电源芯片的PG(Power Good)管脚是什么?
在看电源芯片规格书时,你会发现有一些电源芯片有PG管脚。如下ti.com.cn/product/cn/tps56637?qgpn=tps56637规格书所示: 对应的描述是:Open Drain Power Good Indicator, it is asserted low if output voltage is out of PG threshold due to over-voltage, under…...
C/C++圣诞树
系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C…...
牛客--求小球落地5次后所经历的路程和第5次反弹的高度,称砝码
求小球落地5次后所经历的路程和第5次反弹的高度 描述 假设有一个小球从 hh 米高度自由落下,我们不考虑真实的物理模型,而是简洁的假定,该小球每次落地后会反弹回原高度的一半;再落下,再反弹;……。 求小球…...
cad学习 day6
平面布置图 文字标注: 材料代码(视口外进行标注) 成品家具(移动家具)、定制家具、洁具、家电电器根据封面设计说明内容进行文字标注sc 缩放代码符号, 打印可以看的清楚 家具尺寸图 家具尺寸标注: 家具尺寸; 过道尺寸; 冰箱、洗衣机、马桶(预览尺寸)D 平面内尺寸置为当前, 视…...
Chrome 浏览器插件获取网页 iframe 中的 window 对象
Chrome 浏览器插件获取网页 iframe 中的 window 对象 前言 之前写了篇《Chrome 浏览器插件获取网页 window 对象》文章,是获取当前页面的 window 对象,但是有些页面是嵌入 iframe 的,特别是系统项目主域一样,那就也需要获取 ifr…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...
AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)
Name:3ddown Serial:FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名:Axure 序列号:8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...
EasyRTC音视频实时通话功能在WebRTC与智能硬件整合中的应用与优势
一、WebRTC与智能硬件整合趋势 随着物联网和实时通信需求的爆发式增长,WebRTC作为开源实时通信技术,为浏览器与移动应用提供免插件的音视频通信能力,在智能硬件领域的融合应用已成必然趋势。智能硬件不再局限于单一功能,对实时…...
