Vue中使用Vuex(超详细)基本使用方法

vue中使用vuex,不同的vue版本要对应使用不同的vuex,在这里不做详情介绍,想具体了解的,请自行度娘或者必应一下。

在使用vuex之前,我们创建一个新的项目,这里我们使用的是vue的脚手架创建一个vue项目。

命令vue create muf-simple-vuex-demo

此处我们使用的是vue2的版本,vue版本号为v2.6.14,对用使用的vuex的版本是3.6.2

在这里插入图片描述
src目录下创建一个store文件夹,在store文件夹下创建index.js文件和modules(模块文件夹,为了拓展不同的业务模块使用),在modules文件夹下创建一个settings.js文件,具体目录接口如上图所示。

那么直接贴出代码文件。

store文件夹下创建的index.js文件

import Vue from 'vue'
import Vuex from 'vuex'
import settings from './modules/settings'Vue.use(Vuex)// 全局的state
const state = {}// 全局的 mutations
const mutations = {}// 全局的 getters
const getters = {}const store = new Vuex.Store({state,mutations,getters,modules: {settings,// 其他业务更多的模块文件},
})export default store

modules文件夹下创建的settings.js文件

const state = {settingObj: {version: 'V2.1.3',updateTime:'2024-03-29'}
}/*** 单一赋值数据:修改对用的数据* 1.如果不需要对数据二次加工,直接存的话,可以调用此处的方法;* 2.如果需要对数据进行处理,二次加工之后,在存储的话,可以在 actions 内进行数据处理包装* * 一、如何使用全局mutations* 示例1:* this.$store.commit('UPDATE_VERSION',newVersion)* * 示例2:* 导包* import { mapMutations } from 'vuex'* methods 方法模块进行注册* methods: { *    ...mapMutations(['UPDATE_VERSION']), // 保持原方法名不变,*    ...mapMutations({'updateVersion': 'UPDATE_VERSION'})// 在次组件中,新起一个名字* }* 直接使用* this.UPDATE_VERSION('')* this.updateVersion('')* * * 二、如何使用modules中的mutations( namespaced:true)* 示例1:* this.$store.commit('settings/UPDATE_VERSION',newVersion)* * 示例2:* import { mapMutations } from 'vuex'* methods 方法模块进行注册* methods: { *    ...mapMutations('settings',['UPDATE_VERSION']), // 保持原方法名不变,*    ...mapMutations('settings',{'updateVersion': 'UPDATE_VERSION'})// 在次组件中,新起一个名字* }* 直接使用* this.UPDATE_VERSION('')* this.updateVersion('')* * */
const mutations = {UPDATE_VERSION: function (state, newVersion) { state.settingObj.version = newVersion},UPDATE_TIME: function (state, newTime) { state.settingObj.updateTime = newTime},UPDATE_SETTING_OBJ: function (state, newSettingObj) { state.settingObj = newSettingObj},
}/*** 单一对数据进行加工之后,再进行存储,在此处进行处理之后,然后调用 mutations 内的方法* * 一、如何使用全局 actions* 示例1:* this.$store.dispatch('settings/updateVersion','这是更新之后的版本号:V5.5.5')* * 示例2:* 先导包* import { mapActions } from 'vuex'* 然后复制下面代码到 methods 模块进行注册* methods: { *    ...mapActions(['updateVersion']), // 保持原方法名不变,*    ...mapActions({'newUpdateVersion': 'updateVersion'})// 在次组件中,新起一个名字* }* 直接使用* this.updateVersion('') // 对应保持原名称不变* this.newUpdateVersion('') // 对应新名称* * 二、如何使用 modules 中的 actions namespaced:true)* * 示例1:* this.$store.dispatch('settings/UPDATE_VERSION',newVersion)* * 示例2:* import { mapActions } from 'vuex'* methods: { *    ...mapActions('settings',['updateVersion']), // 保持原方法名不变,*    ...mapActions('settings',{'newUpdateVersion': 'updateVersion'})// 在次组件中,新起一个名字* }* 直接使用* this.updateVersion('') // 对应保持原名称不变* this.newUpdateVersion('') // 对应新名称* */
const actions = {updateVersion({ commit }, data) { commit('UPDATE_VERSION', data)},updateSettingObj({ commit }, data) { commit('UPDATE_SETTING_OBJ', data)},updateTime({ commit }, data) { commit('UPDATE_TIME',data)},}/*** 一、如何使用全局getters* 示例1:* this.$store.getters.settingObj* * 示例2:* import { mapGetters } from 'vuex'* 在 计算属性 computed 使用* computed: { *    ...mapGetters(['updateVersion']), //保持原方法名不变,*    ...mapGetters({'newUpdateVersion': 'updateVersion'}) //在次组件中,新起一个名字* }* * 二、如何使用 modules 中的 getters* 示例1:* this.$store.getters.settings.settingObj* 在 计算属性 computed 使用* computed: { *    ...mapGetters('settings',['settingObj']), // 保持原方法名不变,*    ...mapGetters('settings',{'newSettingObj': 'settingObj'})// 在次组件中,新起一个名字* }*/
const getters = {settingObj: (state) => state.settingObj,
}export default {namespaced: true,state,mutations,actions,getters,
}

具体的使用方法,请看settings.js文件,注释写的比较清晰一些。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于java高校社团招新系统设计与实现

摘要 :大学学生社团的不断壮大发展,让对社团的招新管理越来越重要,如何高效的管理社团,促进社团有效的运行和发展变得尤为关键。学生社团在学生的成长发展过程中有着一定的积极作用,要发挥好社团的优势,管…

机器学习基础——模型评估与选择(部分)

目录 一、前言:误差与拟合 (一)经验误差 (二)过拟合、欠拟合 二、评估方法 (一)评估总体的思路 (二)如何划分训练集和测试集 1.留出法 2.k折交叉验证 3.自助法 …

Matlab之求直角坐标系下两直线的交点坐标

目的:在直角坐标系下,求两个直线的交点坐标 一、函数的参数说明 输入参数: PointA:直线A上的点坐标; AngleA:直线A的倾斜角,单位度; PointB:直线B上的点坐标&#xf…

Game Audio Programming

音频编程时游戏开发中最容易忽略,学习资源又是很少的环节。接下来,你将和我探索人耳的工作机制。 what is sound? 我们可以解释电视机是如何通过眼睛传递视觉信息的,但却往往无法对听觉信息做出类似的解释。 对声音的科学研究被称为声学&…

Day48:WEB攻防-PHP应用文件上传中间件CVE解析第三方编辑器已知CMS漏洞

目录 PHP/ASP-中间件-上传相关-IIS&Apache&Nginx(解析漏洞) IIS Apache Nginx PHP-编辑器-上传相关-第三方处理引用 PHP-CMS源码-上传相关-已知识别到利用 知识点: 1、PHP-中间件-文件上传-CVE&配置解析 2、PHP-编辑器-文件上传-第三方引用安全 3…

Vue——案例01(查询用户)

一、案例实现页面 二、案例实现效果 1. 查询效果 2. 年龄升序 3. 年龄降序 4. 原顺序 三、案例实现思路 1. 定义界面所需标签样式 <div id"app"><h2>查询用户:</h2><input type"text" placeholder"请输入名字"/><b…

01---java面试八股文——mybatis-------10题

1、什么是MyBatis Mybatis是一个半ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它内部封装了JDBC&#xff0c;开发时只需要关注SQL语句本身&#xff0c;不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql&#xff0c…

superset config.py路徑

superset config.py路徑 1.路徑 cd /opt/module/miniconda3/envs/superset/lib/python3.9/site-packages/superset2.找到config.py路徑

LeetCode146:LRU缓存

leetCode&#xff1a;146. LRU 缓存 题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中&#x…

Java项目:80 springboot师生健康信息管理系统

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 系统的角色&#xff1a;管理员、宿管、学生 管理员管理宿管员&#xff0c;管理学生&#xff0c;修改密码&#xff0c;维护个人信息。 宿管员…

Elasticsearch 和 Kibana 8.13:简化 kNN 和改进查询并行化

作者&#xff1a;Gilad Gal, Tyler Perkins, Srikanth Manvi, Aris Papadopoulos, Trevor Blackford 在 8.13 版本中&#xff0c;Elastic 引入了向量搜索的重大增强&#xff0c;并将 Cohere 嵌入集成到其统一 inference API 中。这些更新简化了将大型语言模型&#xff08;LLM&a…

深度学习pytorch——卷积神经网络(持续更新)

计算机如何解析图片&#xff1f; 在计算机的眼中&#xff0c;一张灰度图片&#xff0c;就是许多个数字组成的二维矩阵&#xff0c;每个数字就是此点的像素值&#xff08;图-1&#xff09;。在存储时&#xff0c;像素值通常位于[0, 255]区间&#xff0c;在深度学习中&#xff0…

《QT实用小工具·四》屏幕拾色器

1、概述 源码放在文章末尾 该项目实现了屏幕拾色器的功能&#xff0c;可以根据鼠标指定的位置识别当前位置的颜色 项目功能包含&#xff1a; 鼠标按下实时采集鼠标处的颜色。 实时显示颜色值。 支持16进制格式和rgb格式。 实时显示预览颜色。 根据背景色自动计算合适的前景色…

Jenkins详细安装配置部署

目录 简介一、安装jdk二、安装jenkins这里如果熟悉 Jenkins &#xff0c;可以【选择插件来安装】&#xff0c;如果不熟悉&#xff0c;还是按照推荐来吧。注意&#xff1a; 三、插件安装如果上面插件安装&#xff0c;选择的不是【安装推荐的插件】&#xff0c;而是【选择插件来安…

论文阅读-《Lite Pose: Efficient Architecture Design for 2D Human Pose Estimation》

摘要 这篇论文主要研究了2D人体姿态估计的高效架构设计。姿态估计在以人为中心的视觉应用中发挥着关键作用&#xff0c;但由于基于HRNet的先进姿态估计模型计算成本高昂&#xff08;每帧超过150 GMACs&#xff09;&#xff0c;难以在资源受限的边缘设备上部署。因此&#xff0…

C#使用SQLite(含加密)保姆级教程

C#使用SQLite 文章目录 C#使用SQLite涉及框架及库复制runtimes创建加密SQLite文件生成连接字串执行SQL生成表SQLiteConnectionFactory.cs 代码结构最后 涉及框架及库 自己在NuGet管理器里面安装即可 Chloe.SQLite&#xff1a;ORM框架Microsoft.Data.Sqlite.Core&#xff1a;驱…

SAMRTFORMS 转换PDF 发送邮件

最终成果&#xff1a; *&---------------------------------------------------------------------**& Report ZLC_FIND_EXIT*&---------------------------------------------------------------------**&根据T-CODE / 程序名查询出口、BADI增强*&-------…

深入MNN:开源深度学习框架的介绍、安装与编译指南

引言 在人工智能的世界里&#xff0c;深度学习框架的选择对于研究和应用的进展至关重要。MNN&#xff0c;作为一个轻量级、高效率的深度学习框架&#xff0c;近年来受到了众多开发者和研究人员的青睐。它由阿里巴巴集团开源&#xff0c;专为移动端设备设计&#xff0c;支持跨平…

【Canvas与艺术】五角星光芒四射的效果展示

【关键点】 三一渐变式光芒的实现。 【效果】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>光芒四射</title><st…

在.Net6中用gdal实现第一个功能

目录 一、创建.NET6的控制台应用程序 二、加载Gdal插件 三、编写程序 一、创建.NET6的控制台应用程序 二、加载Gdal插件 Gdal的资源可以经过NuGet包引入。右键单击项目名称&#xff0c;然后选择 "Manage NuGet Packages"&#xff08;管理 NuGet 包&#xff09;。N…