【Vue】之Vuex的入门使用,取值,修改值,同异步请求处理---保姆级别教学
一,Vuex入门
1.1 什么是Vuex
Vuex是一个专门为Vue.js应用程序开发的状态管理库。它用于管理应用程序中的共享状态,它采用集中式存储管理应用的所有组件的状态,使得状态的管理变得简单和可预测
官方解释:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。可以想象为一个“前端数据库”(数据仓库), 让其在各个页面上实现数据的共享包括状态,并且可操作
1.2 Vuex的核心概念
-
State(状态):使用单一状态树来存储应用程序的所有状态。该状态树是响应式的,当状态发生变化时,组件会自动更新。
-
Getter(获取器):用于从状态中派生出新的状态。通过计算属性或方法,在获取器中可以对状态进行处理,从而得到新的值。
-
Mutation(突变):用于修改状态的唯一方式。每个突变都是一个纯函数,接受当前的状态和一些可选的额外参数作为输入。在突变中,可以对状态进行同步修改。
-
Action(动作):类似于突变,但是不直接修改状态。动作提交突变来改变状态。动作可以包含异步操作、以及对突变的多次提交。
-
Module(模块):将应用程序的状态拆分成多个模块,每个模块拥有自己的状态、获取器、突变和动作。通过模块化的方式,可以更好地组织和管理状态。
1.3 Vuex优点
①集中化管理状态,方便状态的跟踪和调试
②组件之间共享状态,减少了组件间的通信复杂度
③提供了一套规范和约束,使得状态的变化可追踪和可预测
④支持插件扩展,可以通过插件增加额外的功能
二,Vuex的使用
2.1 vuex使用步骤
2.1.1 安装
node.js版本10输入下指令进行安装:
npm install vuex -S
node.js版本18请执行下指令
npm i -S vuex@3.6.2
注意:在spa项目工作区间使用cmd终端命令窗口执行
2.2.2 创建store模块
每一个Vuex应用的核心就是store(仓库),store基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。
store模块所需要的js文件:
index.js
state.js :共同维护的一个状态,state里面可以是很多个全局状态
actions.js :数据的异步操作
mutations.js :获取数据并渲染
getters.js :获取数据并渲染
结构:
2.2.3 在store/index.js中注入各模块
import Vue from 'vue'
import Vuex from 'vuex'
import state from './state'
import getters from './getters'
import actions from './actions'
import mutations from './mutations'
Vue.use(Vuex)
const store = new Vuex.Store({state,getters,actions,mutations})export default store
2.2.4 在main.js中导入并使用store实例
import store from './store'
三、使用Vuex取值、修改值案例
3.1 创建两个组件
如下 pageone与pagetwo组件

3.2 配置路由
src/router/index.js
import pageone from '@/views/vuex/pageone'
import pagetwo from '@/views/vuex/pagetwo'

3.3 模拟菜单数据
<!-- 模拟数据 --><el-submenu key="key_999" index="index_999"><template slot="title"><span slot="title">Vuex管理</span></template><el-menu-item key="key_99901" index="/vuex/pageone"><span>pageone</span></el-menu-item><el-menu-item key="key_99902" index="/vuex/pagetwo"><span>pagetwo</span></el-menu-item></el-submenu>
3.4 vuex核心操作
①在state.js中定义全局参数
state.js:
export default{eduName:'我不是打工人'
}
②在mutations.js中改变值
mutations.js:
export default{setEduName:(state,payload)=>{state.eduName=payload.eduName}
}
③在getters.js中获取参数值
export default{getEduName:(state)=>{return state.eduName;}
}
3.5 效果

扩展:在别的页面上同样可以获取到state的值
pagetwo.vue组件编写:
computed:{eduName(){return this.$store.state.eduName}
}

三,Vuex异步请求处理
3.1 异步改变值
actions.js:异步改变state的值
export default{setEduNameAsync:(context,payload)=>{setTimeout(function(){context.commit('setEduName',payload);},5000);}
}
在刚刚的Vue组件中新增一个按钮和点击事件

fun3(){this.$store.dispatch('setEduNameAsync',{eduName:this.msg})}
效果展示:

3.2 异步发送Ajax到后端
后端代码:
package com.zking.ssm.controller;import com.zking.ssm.util.JsonResponseBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Date;@RestController
@RequestMapping("/vuex")
public class VuexController {@RequestMapping("/queryVuex")public JsonResponseBody<?> queryVuex(HttpServletRequest request) {String resturantName = request.getParameter("resturantName");SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String date = sdf.format(new Date());try {System.out.println("模拟异步情况,睡眠6秒,不能超过10秒,axios超时时间设置的是10秒!");Thread.sleep(6000);System.out.println("睡醒了,继续...");} catch (Exception e) {e.printStackTrace();}return new JsonResponseBody<>(resturantName + "-" + date,true,0,null);}
}
在api文件夹下的action.js设置后台请求的地址的封装(URL)
'VUEX_AJAX': '/vuex/queryVuex', // 异常Ajax请求后端
actions.js:异步发送ajax到后端
setEduNameAjAX:(context, payload) => {let _this=payload._this;let url = _this.axios.urls.VUEX_AJAX;let params = {resturantName: payload.eduName}_this.axios.post(url, params).then(r => {console.log(r)}).catch(r => {});}
在Vue组件中新增一个按钮和点击事件
fun4(){this.$store.dispatch('setEduNameAjAX',{eduName:this.msg, _this:this})}

效果展示:

相关文章:
【Vue】之Vuex的入门使用,取值,修改值,同异步请求处理---保姆级别教学
一,Vuex入门 1.1 什么是Vuex Vuex是一个专门为Vue.js应用程序开发的状态管理库。它用于管理应用程序中的共享状态,它采用集中式存储管理应用的所有组件的状态,使得状态的管理变得简单和可预测 官方解释:Vuex 是一个专为 Vue.js 应…...
ubuntu20.04 nerf Instant-ngp (下) 复现,自建数据集,导出mesh
参考链接 Ubuntu20.04复现instant-ngp,自建数据集,导出mesh_XINYU W的博客-CSDN博客 GitHub - NVlabs/instant-ngp: Instant neural graphics primitives: lightning fast NeRF and more youtube上的一个博主自建数据集 https://www.youtube.com/watch…...
【常见错误】SVN提交项目时,出现了这样的提示:“XXX“ is scheduled for addition, but is missing。
SVN提交项目时,出现了这样的提示:“XXX“ is scheduled for addition, but is missing。 原因是:之前用SVN提交过的文件/文件夹,被标记为"addition"状态,等待被加入到仓库。虽然你把这个文件删除了…...
深度学习基础知识 给模型的不同层 设置不同学习率
深度学习基础知识 给模型的不同层 设置不同学习率 1、使用预训练模型时,可能需要将2、学习率设置方式: 1、使用预训练模型时,可能需要将 (1)预训练好的 backbone 的 参数学习率设置为较小值, (2…...
【Python 零基础入门】 Numpy
【Python 零基础入门】第六课 Numpy 概述什么是 Numpy?Numpy 与 Python 数组的区别并发 vs 并行单线程 vs 多线程GILNumpy 在数据科学中的重要性 Numpy 安装Anaconda导包 ndarraynp.array 创建数组属性np.zeros 创建np.ones 创建 数组的切片和索引基本索引切片操作数组运算 常…...
1600*C. Circle of Monsters(贪心)
Problem - 1334C - Codeforces 解析: 对于某个怪兽,他的耗费为两种情况,要么直接用子弹打,要么被前面的怪兽炸,显然第二种情况耗费更少。 统计出所有怪兽的 max(0,a[ i ] - b[ i - 1 ]ÿ…...
国外互联网巨头常用的项目管理工具揭秘
大型互联网公司有涉及多个团队和利益相关者的复杂项目。为了保持项目的组织性和效率,他们中的许多人依赖于项目管理工具。这些工具有助于跟踪任务,与团队成员沟通,并监控进度。让我们来看看一些大型互联网公司正在使用的项目管理工具。 1、Zo…...
sql 注入(4), 盲注
sql 注入, 盲注 盲注适合在页面没有任何回显时使用. 测试页面有变化, 但是没有显示任何异常错误等信息. 情景: url: http://192.168.112.200/security/read.php?id1 服务器数据库名: learn一, boolean盲注 # 盲注可能需要一个一个字符去试探, 字符串处理函数经常会用到. 比…...
【string题解 C++】字符串相乘 | 翻转字符串III:翻转单词
字符串相乘 题面 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigIn…...
CentOS 7下JumpServer安装及配置(超详细版)
前言 Jumpserver是一种用于访问和管理远程设备的Web应用程序,通常用于对服务器进行安全访问。它基于SSH协议,提供了一个安全和可管理的环境来管理SSH访问。Jumpserver是基于Python开发的一款开源工具,其提供了强大的访问控制功能,…...
基于 ACK Fluid 的混合云优化数据访问(五):自动化跨区域中心数据分发
作者:车漾 前文回顾: 本系列将介绍如何基于 ACK Fluid 支持和优化混合云的数据访问场景,相关文章请参考: -基于 ACK Fluid 的混合云优化数据访问(一):场景与架构 -基于 ACK Fluid 的混合云优…...
sentinel的启动与运行
首先我们github下载sentinel Releases alibaba/Sentinel (github.com) 下载好了后输入命令让它运行即可,使用cmd窗口输入一下命令即可 java -Dserver.port8089 -jar sentinel-dashboard-1.8.6.jar 账号密码默认都是sentinel 启动成功后登录进去效果如下...
模拟量采集无线WiFi网络接口TCP Server, UDP, MQTT
● 4-20mA信号转换成标准Modbus TCP协议 ● 支持TCP Server, UDP, MQTT等通讯协议 ● 内置网页功能,可以通过网页查询数据 ● 宽电源供电范围:8 ~ 32VDC ● 可靠性高,编程方便,易于应用 ● 标准DIN35导轨安装,方便…...
五、OSPF动态路由实验
拓扑图: 基本ip的配置已经配置好了,接下来对两台路由器配置ospf协议,两台PC进行跨网段通讯 R1与R2构成单区域OSPF区域0,首先对R1进行配置 首先进入ospf 默认进程1,router id省略空缺,之后进入area 0区域&…...
系统架构设计:16 论软件开发过程RUP及其应用
目录 一 统一过程RUP 1 典型特点 2 四个阶段 (1)构思阶段(初始阶段/初启阶段)...
Gralloc ION DMABUF in Camera Display
目录 Background knowledge Introduction ia pa va and memory addressing Memory Addressing Page Frame Management Memory area management DMA IOVA and IOMMU Introduce DMABUF What is DMABUF DMABUF 关键概念 DMABUF APIS –The Exporter DMABUF APIS –The…...
【LVS】lvs的四种模式的区别是什么?
LVS中的DR模式、NAT模式、TUN模式和FANT模式是四种不同的负载均衡模式,它们之间的主要区别在于数据包转发方式和网络地址转换。 DR模式(Direct Routing):此模式通过改写请求报文的目标MAC地址,将请求发给真实服务器&a…...
Android原生实现控件点击弹起效果方案(API28及以上)
之前在实现控件阴影时有提到过,阴影效果的实现采用的是Android原生的View的属性,拔高Z轴。Z轴会让View产生阴影的效果。 Zelevation translationZ 拔高Z轴可以通过控制elevation和translationZ。 我们之前是通过elevation来单纯的控制Z轴;而…...
【数据结构-队列 二】【单调队列】滑动窗口最大值
废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【单调队列】,使用【队列】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&…...
如何设置CentOS系统以禁用不必要的网络端口和服务?
要禁用CentOS系统中的不必要的网络端口和服务,可以按照以下步骤进行操作: 1. 查看当前正在运行的服务和端口:使用以下命令可以查看正在运行的服务和对应的端口号。 sudo netstat -tuln 2. 停用不必要的服务:根据netstat命令的输…...
HS2-HF_Patch汉化补丁:3分钟打造完美中文游戏体验
HS2-HF_Patch汉化补丁:3分钟打造完美中文游戏体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为Honey Select 2的日文界面而烦恼吗…...
3分钟搞定macOS OBS虚拟摄像头:专业直播与视频会议的终极指南
3分钟搞定macOS OBS虚拟摄像头:专业直播与视频会议的终极指南 【免费下载链接】obs-mac-virtualcam ARCHIVED! This plugin is officially a part of OBS as of version 26.1. See note below for info on upgrading. 🎉🎉🎉Creat…...
告别手动画图!用Perl脚本自动化统计MS动力学模拟中的氢键(附脚本下载)
用Perl脚本实现MS动力学模拟中氢键的自动化统计与分析 在分子动力学模拟研究中,氢键作为影响材料性能的关键因素之一,其动态变化规律往往需要从海量轨迹数据中提取。传统手动分析方法不仅效率低下,还容易引入人为误差。本文将介绍如何利用Per…...
从静态地图到动态避障:图解ROS中global_costmap与local_costmap如何协同工作
从静态地图到动态避障:图解ROS中global_costmap与local_costmap如何协同工作 在机器人自主导航领域,理解代价地图的工作原理是构建可靠导航系统的关键。想象一下,当人类在陌生城市中导航时,我们会同时参考静态的城市地图和实时观察…...
PSoC Creator开发实战:从组件配置到自定义模块设计
1. 项目概述与核心价值 作为一名在嵌入式领域摸爬滚打了十多年的老工程师,我接触过不少开发工具和平台。今天想和大家深入聊聊赛普拉斯(Cypress,现为英飞凌旗下)的 PSoC Creator 这款集成开发环境(IDE)。…...
STM32F407 UART4串口DMA接收不定长数据与中断发送的实战配置与避坑指南
1. 为什么需要DMAUART组合方案 在嵌入式开发中,串口通信就像快递员送货上门。传统中断方式相当于每送一个包裹(字节)就按一次门铃,快递员(CPU)必须放下手头工作去开门。当数据量大时,这种频繁中…...
独立开发者如何借助Taotoken模型广场为应用选型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者如何借助Taotoken模型广场为应用选型 对于独立开发者而言,启动一个新项目往往意味着在有限的预算和时间内做…...
深入解析PCI中断路由:从硬件引脚到操作系统中断处理的完整链路
1. 项目概述与核心问题在计算机硬件系统里,中断机制是设备与处理器高效通信的生命线。它允许设备在需要处理器服务时,主动“打断”处理器当前的工作流,而不是让处理器不断地去“询问”设备的状态。对于PCI(Peripheral Component I…...
Fluentd命令行化实践:fluent_cli打造轻量级实时日志处理管道
1. 项目概述:一个高效的命令行日志处理工具最近在折腾一个分布式系统的日志收集链路,发现很多现成的日志处理工具要么太重,要么配置起来太繁琐。尤其是在需要快速查询、过滤和转换不同来源的日志流时,往往需要写一堆脚本ÿ…...
MAA明日方舟自动化工具终极指南:如何一键解放双手轻松长草
MAA明日方舟自动化工具终极指南:如何一键解放双手轻松长草 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https:/…...



