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.hqwc.cn/news/579189.html

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

相关文章

c语言中动态内存管理

说到内存,大家一定都知道。但是有一种函数可以实现动态内存管理,下面大家一起学习。 文章目录 一、为什么要有动态内存管理?二、malloc 和 free1.malloc2.free 三、calloc 和 realloc1.calloc2.realloc3.常见的动态内存的错误3.1对NULL指针的…

账号微服务短信验证码发送工具单元测试

账号微服务短信验证码发送工具单元测试 注意sms的 app-code #----------sms短信配置-------------- sms:app-code: dd7829bedfaf4373875aa91abba82523template-id: JM1000372package net.xdclass.config;import org.springframework.context.annotation.Bean; import org.spri…

基于JSPM的美食推荐管理系统

背景 互联网的迅猛扩张彻底转变了全球各类组织的运营模式。自20世纪90年代起,中国各级政府和企事业单位便开始探索运用网络系统来处理管理事务。然而,早期的网络覆盖不广、用户接受度不高、相关网络法规不健全以及技术发展不成熟等因素,都曾…

linux之进程控制

目录 一、fork函数 1.进程: 2.fork函数: 3.写时拷贝 4.fork常规用法 5.fork调用失败的原因 二、进程终止 1.终止是在做这么? 2.进程终止的3种情况 3.如何终止 三、进程等待 四、进程程序替换 1.替换原理 2.原理 3.将代码改成多…

C# 学习第五弹——语句

一、if语句 —简单if语句 —if else 语句 —if else if else 语句 1、简单if语句 if(表达式){语句} (1)表达式必须使用圆括号括起来; (2)表达式:关系表达式或逻辑表达…

蓝桥杯第十五届抱佛脚(五)DFS、BFS及IDS

蓝桥杯第十五届抱佛脚(五)DFS、BFS及IDS 深度优先搜索 DFS(Depth-First Search)即深度优先搜索,是一种用于遍历或搜索树或图的算法。它从根节点开始,尽可能沿着每一条路径直到这条路径最后一个节点被访问了,然后回退,继续访问下一条路径。它的基本思想…

wiztree免费的c盘清理软件

现如今,我们无论是工作还是学习,都已经离不开电脑了,经常使用电脑就会导致电脑的“垃圾”越来越多,从而导致磁盘爆红。 相信大家多多少少都体会过这大红的压迫感吧,想清理但是不敢删,不清理吧软件用不了&a…

XVQQ防撤回多开1.7

资源获取 链接:https://pan.baidu.com/s/1B7gqb8pQbyRA1xmUH7h-6w?pwd00qt 提取码:00qt

linux离线安装maven

一、下载maven 地址:Maven – Download Apache Maven 使用root权限用户登录服务器 cd /opt sudo mkdir maven cd maven 二、上传maven 使用Xftp工具 三、解压并配置环境变量 tar -zxvf tar -zxvf apache-maven-3.9.6-bin.tar.gz cd apache-maven-3.9.6/ 看到解压…

linux在使用重定向写入文件时(使用标准C库函数时)使处理信号异常(延时)--问题分析

linux在使用重定向写入文件时(使用标准C库函数时)使处理信号异常(延时)–问题分析 在使用alarm函数进行序号处理测试的时候发现如果把输出重定向到文件里面会导致信号的处理出现严重的延迟(ubuntu18) #include <stdio.h> #include <stdlib.h> #include <unist…

FastAPI+React全栈开发08 安装MongoDB

Chapter02 Setting Up the Document Store with MongoDB 08 Installing MongoDB and friends FastAPIReact全栈开发08 安装MongoDB The MongoDB ecosystem is composed of different pieces of software, and I remember that when I was starting to play with it, there w…

代码随想录训练营第60天 | LeetCode 84.柱状图中最大的矩形、总结

LeetCode 84.柱状图中最大的矩形 文章讲解&#xff1a;代码随想录(programmercarl.com) 视频讲解&#xff1a;单调栈&#xff0c;又一次经典来袭&#xff01; LeetCode&#xff1a;84.柱状图中最大的矩形_哔哩哔哩_bilibili 思路 代码如下&#xff1a; ​​​​​​总结 感…