当前位置: 首页 > news >正文

【VUE】9、VUE项目中使用VUEX完成状态管理

Vuex 是一个专为 Vue.js 应用程序设计的状态管理模式,它帮助开发者更有效地管理组件间共享的状态。在 Vue 项目中使用 Vuex,可以解决复杂应用中状态管理的困扰,确保状态变更的可追踪性和一致性。

1、Vuex 核心概念

  1. State(状态): 存储应用中多个组件共享的数据。这是单一的源头,使得组件能够读取状态,但不能直接修改它。
  2. Getters(获取器): 类似于 Vue 中的计算属性,用于从 Store 的 State 中派生出一些状态,可以认为是 Store 的读取方法。
  3. Mutations(突变): 用于改变 State 的唯一方式。每个 Mutation 都有一个字符串类型的事件类型 (type) 和一个回调函数 (handler),该函数接收 State 作为第一个参数。
  4. Actions(动作): Action 提交的是 Mutation,而不是直接改变状态。Action 可以包含任意异步操作,如调用 API。
  5. Modules(模块): 当应用变得非常大时,可以通过模块来分割 Store,每个模块有自己独立的 State、Mutation、Action 和 Getter。

2、安装 Vuex

npm install vuex --save

yarn add vuex

3、初始化 Vuex Store

在 src 目录下新建 store 文件夹,创建一个名为 store.js 的文件,初始化 Vuex Store:

// src/store/index.js
import Vue from 'vue';
import Vuex from 'vuex';Vue.use(Vuex);export default new Vuex.Store({state: {count: 0},mutations: {increment(state) {state.count++;},decrement(state) {state.count--;}},actions: {increment({ commit }) {commit('increment');},decrement({ commit }) {commit('decrement');}},getters: {count: state => state.count}
});

4、在 Vue 应用中使用 Store

  • 在 main.js 中引入并使用 Store:
// src/main.js
import Vue from 'vue';
import App from './App.vue';
import store from './store';Vue.config.productionTip = false;new Vue({store,render: h => h(App),
}).$mount('#app');
  • 在组件中访问 Store:
<template><div><p>{{ count }}</p><button @click="increment">Increment</button><button @click="decrement">Decrement</button></div>
</template><script>
export default {computed: {count() {return this.$store.state.count;}},methods: {increment() {this.$store.commit('increment');},decrement() {this.$store.commit('decrement');}}
};
</script>

5、使用 Getters

<template><div><p>{{ count }}</p></div>
</template><script>
export default {computed: {count() {return this.$store.getters.count;}}
};
</script>

6、使用 Actions

<template><div><button @click="increment">Increment</button><button @click="decrement">Decrement</button></div>
</template><script>
export default {methods: {increment() {this.$store.dispatch('increment');},decrement() {this.$store.dispatch('decrement');}}
};
</script>

7、模块化 Store

随着应用变得越来越复杂,你可能希望将 Vuex Store 拆分成模块。每个模块可以拥有自己的 state、mutations、actions 和 getters。

// src/store/modules/counter.js
const state = {count: 0
};const mutations = {increment(state) {state.count++;},decrement(state) {state.count--;}
};const actions = {increment({ commit }) {commit('increment');},decrement({ commit }) {commit('decrement');}
};const getters = {count: state => state.count
};export default {state,mutations,actions,getters
};

然后在 store/index.js 中引入模块:

// src/store/index.js
import Vue from 'vue';
import Vuex from 'vuex';
import counter from './modules/counter';Vue.use(Vuex);export default new Vuex.Store({modules: {counter}
});

以上就是在 Vue 项目中使用 Vuex 的基础流程。通过这种方式,你可以轻松地管理和维护应用程序的全局状态,使状态变更更加清晰可控。随着应用规模的增长,合理划分模块和优化状态管理策略会变得更加重要。

如您在阅读中发现不足,欢迎留言!!!

相关文章:

【VUE】9、VUE项目中使用VUEX完成状态管理

Vuex 是一个专为 Vue.js 应用程序设计的状态管理模式&#xff0c;它帮助开发者更有效地管理组件间共享的状态。在 Vue 项目中使用 Vuex&#xff0c;可以解决复杂应用中状态管理的困扰&#xff0c;确保状态变更的可追踪性和一致性。 1、Vuex 核心概念 State&#xff08;状态&a…...

【eNSP模拟实验】单臂路由实现VLAN间通信

实验需求 如下图所示&#xff0c;辅导员办公室需要访问处在不同vlan的学生管理服务器的文件&#xff0c;那么如何实现两台终端相互通信呢&#xff1f;我们可以使用单臂路由的方式来实现。 单臂路由&#xff08;router-on-a-stick&#xff09;是指在路由器的一个接口上通过配置…...

哪些点权衡素材优秀与否

投放信息流素材的过程当中&#xff0c;我们究竟看哪几点来权衡这个素材是优秀的还是不优秀的&#xff1f;我们主要是以三个维度来看。 第一个就是 3 秒和 5 秒的完播率。很多优秀的素材它可能在前三秒和前五秒很平淡的一个过程&#xff0c;但是因为现在是一个非常快节奏的过程&…...

服务器数据恢复—2块硬盘离线且热备盘未完全激活的raid5数据恢复案例

服务器存储数据恢复环境&#xff1a; 北京某企业一台EMC FCAX-4存储上搭建一组由12块成员盘的raid5磁盘阵列&#xff0c;其中包括2块热备盘。 服务器存储故障&#xff1a; raid5阵列中两块硬盘离线&#xff0c;热备盘只有一块成功激活&#xff0c;raid瘫痪&#xff0c;上层LUN…...

Excel 学习手册 - 精进版(包括各类复杂函数及其嵌套使用)

作为程序员从未想过要去精进一下 Excel 办公软件的使用方法&#xff0c;以前用到某功能都是直接百度&#xff0c;最近这两天跟着哔哩哔哩上的戴戴戴师兄把 Excel 由里到外学了一遍&#xff0c;收获良多。程序员要想掌握这些内容可以说是手拿把掐&#xff0c;对后续 Excel 的运用…...

【CUDA】thrust进行前缀和的操作

接上篇文章&#xff0c;可以发现使用CUDA提供的API进行前缀和扫描时&#xff0c;第一次运行的时间不如共享内存访问&#xff0c;猜测是使用到了全局内存。 首先看调用逻辑&#xff1a; thrust::inclusive_scan(thrust::device, d_x, d_x N, d_x);第一个参数指定了设备&#x…...

Qt-QPainter的使用总结

一、QPainter介绍 QPainter是Qt框架中的一个类,主要用于在各种设备上进行2D图形绘制,如窗口、位图、打印设备等。它提供了一系列绘图函数,可以实现绘制点、线、曲线、形状、文本、图像以及复杂的绘画操作。 QPainter 与 QPaintDevice 和 QPaintEngine 类一起构成了Qt绘制系…...

轻松搞定GIS场景编辑,这款免费工具你一定要试试

如果你正苦恼于如何搞定GIS场景编辑&#xff0c;不妨来试试这款免费可视化工具——山海鲸可视化。经过本人测试&#xff0c;这款软件在GIS场景编辑上完全可以做到“零代码”操作&#xff0c;即使没有任何编程技能也可以在三维GIS世界中如鱼得水。现在&#xff0c;让我们一起来看…...

【笔记】一起齿轮箱的故障和相应的数学模拟实验

1.齿轮箱故障一例 出处&#xff1a;设备的故障识别 GearBox的频谱图&#xff0c;原作者不知道是从哪里拷贝来的&#xff0c;待会儿确认一下。 齿轮啮合频率GMF等于齿数乘以齿轮转速频率&#xff1a; ★齿轮啮合频率两边有边频&#xff0c;间距为1X&#xff08;这是由冲击响应…...

官宣:百数低代码平台已顺利通过国家信息安全等级保护三级认证

在数字化转型浪潮中&#xff0c;企业对于数据安全与隐私保护的需求日益增强&#xff0c;尤其是在选择低代码开发平台时&#xff0c;信息安全等级保护&#xff08;简称“等保”&#xff09;成为众多客户关注的焦点。 近日&#xff0c;我们非常荣幸地向社会各界及广大用户宣布&a…...

Spring源码注解篇二:手写@Component注解

Component注解的功能 在Spring框架中&#xff0c;Component 注解是一个核心特性&#xff0c;用于自动检测类并将其注册为Spring应用上下文中的Bean。这大大简化了Bean的配置过程&#xff0c;使得开发者能够通过注解的方式快速地将类标记为组件&#xff0c;并由Spring容器进行管…...

云备份服务端

文件使用工具和json序列化反序列化工具 //文件和json工具类的设计实现 #ifndef __UTIL__ #define __UTIL__ #include<iostream> #include<fstream> #include<string> #include <vector> #include<sys/stat.h> #include"bundle.h" #inc…...

Jupyter Notebook 使用教程

Jupyter Notebook 使用教程 目录 概述启动Jupyter Notebook创建新的NotebookNotebook界面介绍使用代码单元格使用Markdown单元格Notebook的基本操作保存和导出Notebook扩展功能和技巧 1. 概述 Jupyter Notebook是一个开源的Web应用程序&#xff0c;允许您创建和共享包含代码…...

Leetcode 100361100367.切割蛋糕的最小总开销

Medium&#xff1a;动态规划搜索&#xff08;实际就是优化后的dfs&#xff09; class Solution { public: int f[25][25][25][25] {0};int dp(int row1, int col1, int row2, int col2, vector<int>& horizontalCut, vector<int>& verticalCut){if(row1 …...

单网口设备的IP地址识别-还原-自组网

1.如果知道该设备所在网段&#xff1a; 此时可以使用nmap工具&#xff0c;进行网段扫描&#xff1a; nmap -sn 192.168.0.0/24 256个地址的子网10秒就能扫描一轮。关掉设备&#xff0c;打开设备&#xff0c;diff&#xff0c;基本就可以定位所要找到目标设备的IP 2.如果不知道…...

太速科技-FMC207-基于FMC 两路QSFP+光纤收发子卡

FMC207-基于FMC 两路QSFP光纤收发子卡 一、板卡概述 本卡是一个FPGA夹层卡&#xff08;FMC&#xff09;模块&#xff0c;可提供高达2个QSFP / QSFP 模块接口&#xff0c;直接插入千兆位级收发器&#xff08;MGT&#xff09;的赛灵思FPGA。支持利用Spartan-6、Virtex-6、Kin…...

昇思25天学习打卡营第13天|munger85

文本解码原理–以MindNLP为例 重要的就是怎么样把数字最后转化成真正的文字。而且自回归模型它会一个字给一个字的预测&#xff0c;下一个字应该是什么&#xff1f; 如果这个模型下载很慢&#xff0c;你就可以通过这种方式从摩大社区进行下载。 这种方式&#xff0c; 每一次候…...

Python - Word转TXT文本,或TXT文本转Word

Word文档&#xff08;.doc或.docx&#xff09;和纯文本文件&#xff08;.txt&#xff09;是两种常用的文件格式。Word文档通常用于复杂的文档处理和排版&#xff0c;而纯文本文件则用于存储和传输纯文本信息。了解如何在这两种格式之间进行转换能提高工作效率&#xff0c;并便于…...

链接追踪系列-00.es设置日志保存7天-番外篇

索引生命周期策略 ELK日志我们一般都是按天存储&#xff0c;例如索引名为"zipkin-span-2023-03-24"&#xff0c;因为日志量所占的存储是非常大的&#xff0c;我们不能一直保存&#xff0c;而是要定期清理旧的&#xff0c;这里就以保留7天日志为例。 自动清理7天以前…...

Vant Ui 最新访问地址

Vant 4 - A lightweight, customizable Vue UI library for mobile web apps. 顺带一个顶部导航栏正常写法 先使用吸顶为0&#xff0c;然后再写nav-bar <van-sticky :offset-top"0"> <van-nav-bar class"top-title" title"村集体土地公示&q…...

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(八)-通过无人机进行无线接入

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…...

PTrade量化交易终端常见问题11

盈亏分析为空。 回测详情内&#xff0c;盈亏分析内为空。 1、回测正常结束&#xff0c;并且产生多笔交易&#xff1b; 2、盈亏分析热力图无任何内容&#xff0c;检查支持版本&#xff0c;盈亏分析是在需求单号&#xff1a;202211114089&#xff0c;于PTrade1.0-QTV202301.01.…...

被动的机器人非线性MPC控制

MPC是一种基于数学模型的控制策略&#xff0c;它通过预测系统在未来一段时间内的行为&#xff0c;并求解优化问题来确定当前的控制输入&#xff0c;以实现期望的控制目标。对于非线性系统&#xff0c;MPC可以采用非线性模型进行预测和优化&#xff0c;这种方法被称为非线性模型…...

什么样的服务器是合乎直销网站标准

现在社会的发展,有着越来越多的人想要利用互联网来做直销。做好直销行业系统解决方案离不开好的服务器支持,服务器的的稳定性和速度是直接影响网站后期运作,可以看做是网站的根基。 做网站直销选择租用服务器需要注意的几点要素 一些大的直销互联网公司如安利、雅芳、康宝莱、玫…...

python 语法学习 day13

一.判断题错题反思 1.创建对象是通过调用构造方法完成的 3.python方法定义的第一个参数是self 4.一个对象只能有一个实例变量&#xff08;错&#xff09; 5.在python类中,构造方法的名称为__init__ 6.从类定义之外直接访问实例变量是不好的程序设计风格 7.在python中定义类是时…...

Spring MVC中Restful风格引入

一&#xff0c;RESTful概述 在现代Web应用开发中&#xff0c;RESTful架构风格已成为一种标准实践&#xff0c;特别是在构建可扩展的Web服务时。Spring MVC提供了全面的支持来构建遵循REST原则的Web服务。我在此介绍如何在Spring MVC中实现RESTful风格的Web服务&#xff0c;并通…...

C# Winform 系统方案目录的管理开发

在做一个中等复杂程度项目时&#xff0c;我们通常有系统全局配置&#xff0c;还要有对应的方案目录的管理和更新。 比如我们有如下需求&#xff1a;开发一个方案管理&#xff0c;可以新建、打开和保存方案&#xff0c;同时还需要保存方案中的各种文件。我设计的采用目录管理和…...

算法-二叉树常见问题详解

文章目录 1. 二叉树的三种遍历方式的实质2. 二叉树的序列化与反序列化3. 根据前序中序反序列创建二叉树4. 二叉树的路径问题5. LCA公共祖先问题6. 二叉搜索树的LCA问题7. 验证搜索二叉树8. 修建搜索二叉树9. 二叉树打家劫舍问题 1. 二叉树的三种遍历方式的实质 这个相信大家都不…...

【流媒体】 通过ffmpeg硬解码拉流RTSP并播放

简介 目前RTSP拉流是网络摄像头获取图片数据常用的方法&#xff0c;但通过CPU软解码的方式不仅延时高且十分占用资源&#xff0c;本文提供了一种从网络摄像头RTSP硬解码的拉流的方法&#xff0c;并且提供python代码以便从网络摄像头获取图片进行后续算法处理。 下载ffmpeg F…...

Go语言指针及不支持语法汇总

本文为Go语言中指针定义和示例及不支持语法汇总。 目录 指针 定义指针 关键字new定义 函数返回指针 空指针 Go不支持语法汇总 总结 指针 Go语言也有指针&#xff0c;结构体成员调用时&#xff0c;obj.name Go语言在使用指针时&#xff0c;会使用内容的垃圾回收机制&am…...