位置: IT常识 - 正文

Vuex(vuex数据持久化)

编辑:rootadmin
Vuex 1.概念 ​ 在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。 我们先来看看用全局事件总线实现多组件共享数据的方式: vuex实现 2.vuex原理图 3.何时使用? ​ 多 ... Vuex1.概念

推荐整理分享Vuex(vuex数据持久化),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vuex详解和用法,vue下载,vuex是什么,vuex是什么,vuex的五个属性及使用方法,vuex和pinia的区别,vuex和pinia的区别,vuex详解和用法,内容如对您有帮助,希望把文章链接给更多的朋友!

​在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。

我们先来看看用全局事件总线实现多组件共享数据的方式:

vuex实现

2.vuex原理图

3.何时使用?

​多个组件需要共享数据时

4.搭建vuex环境安装vuex

npm i vuex@3

创建文件:src/store/index.js该文件用于创建vuex中最为核心的store

//引入Vue核心库import Vue from 'vue'//引入Vueximport Vuex from 'vuex'//应用Vuex插件Vue.use(Vuex)//准备actions对象——用于响应组件中用户的动作const actions = {}//准备mutations对象——用于修改state中的数据const mutations = {}//准备state对象——用于保存具体的数据const state = {}//创建并暴露storeexport default new Vuex.Store({actions,mutations,state})

在main.js中创建vm时传入store配置项

......//引入storeimport store from './store'......//创建vmnew Vue({el:'#app',render: h => h(App),store})5.基本使用

初始化数据、配置actions、配置mutations,操作文件store.js

//引入Vue核心库import Vue from 'vue'//引入Vueximport Vuex from 'vuex'//引用VuexVue.use(Vuex)const actions = { //响应组件中加的动作jia(context,value){// console.log('actions中的jia被调用了',miniStore,value)context.commit('JIA',value)},}const mutations = { //执行加JIA(state,value){// console.log('mutations中的JIA被调用了',state,value)state.sum += value}}//初始化数据const state = { sum:0}//创建并暴露storeexport default new Vuex.Store({actions,mutations,state,})

组件中读取vuex中的数据:$store.state.sum

组件中修改vuex中的数据:this.$store.dispatch('action中的方法名',数据) 或 this.$store.commit('mutations中的方法名',数据)

Vuex(vuex数据持久化)

备注:若没有网络请求或其他业务逻辑,组件中也可以越过actions,即不写dispatch,直接编写commit

6.getters的使用

概念:当state中的数据需要经过加工后再使用时,可以使用getters加工。

在store.js中追加getters配置

......const getters = { // bigSum有一个参数就是statebigSum(state){return state.sum * 10 // 返回什么bigSum就是什么值}}//创建并暴露storeexport default new Vuex.Store({......getters})

组件中读取数据:$store.getters.bigSum

7.四个map方法的使用

导入四个mapimport {mapState,mapGetters,mapActions,mapMutations} from 'vuex'

mapState方法:用于帮助我们映射state中的数据为计算属性

computed: { //借助mapState生成计算属性:sum、school、subject(对象写法) ...mapState({sum:'sum',school:'school',subject:'subject'}), //借助mapState生成计算属性:sum、school、subject(数组写法) ...mapState(['sum','school','subject']),},

mapGetters方法:用于帮助我们映射getters中的数据为计算属性

computed: { //借助mapGetters生成计算属性:bigSum(对象写法) ...mapGetters({bigSum:'bigSum'}), //借助mapGetters生成计算属性:bigSum(数组写法) ...mapGetters(['bigSum'])},

mapActions方法:用于帮助我们生成与actions对话的方法,即:包含$store.dispatch(xxx)的函数

methods:{ //靠mapActions生成:incrementOdd、incrementWait(对象形式) ...mapActions({incrementOdd:'jiaOdd',incrementWait:'jiaWait'}) //靠mapActions生成:incrementOdd、incrementWait(数组形式) ...mapActions(['jiaOdd','jiaWait'])}

mapMutations方法:用于帮助我们生成与mutations对话的方法,即:包含$store.commit(xxx)的函数

methods:{ //靠mapActions生成:increment、decrement(对象形式) ...mapMutations({increment:'JIA',decrement:'JIAN'}), //靠mapMutations生成:JIA、JIAN(对象形式) ...mapMutations(['JIA','JIAN']),}

备注:mapActions与mapMutations使用时,若需要传递参数需要:在模板中绑定事件时传递好参数,否则参数是事件对象。

8.模块化+命名空间

目的:让代码更好维护,让多种数据分类更加明确。

修改store.js

const countAbout = { namespaced:true,//开启命名空间 state:{x:1}, mutations: { ... }, actions: { ... }, getters: { bigSum(state){ return state.sum * 10 } }}const personAbout = { namespaced:true,//开启命名空间 state:{ ... }, mutations: { ... }, actions: { ... }}const store = new Vuex.Store({ modules: { countAbout, personAbout }})

开启命名空间后,组件中读取state数据:

//方式一:自己直接读取this.$store.state.personAbout.list//方式二:借助mapState读取:...mapState('countAbout',['sum','school','subject']),

开启命名空间后,组件中读取getters数据:

//方式一:自己直接读取this.$store.getters['personAbout/firstPersonName']//方式二:借助mapGetters读取:...mapGetters('countAbout',['bigSum'])

开启命名空间后,组件中调用dispatch

//方式一:自己直接dispatchthis.$store.dispatch('personAbout/addPersonWang',person)//方式二:借助mapActions:...mapActions('countAbout',{incrementOdd:'jiaOdd',incrementWait:'jiaWait'})

开启命名空间后,组件中调用commit

//方式一:自己直接committhis.$store.commit('personAbout/ADD_PERSON',person)//方式二:借助mapMutations:...mapMutations('countAbout',{increment:'JIA',decrement:'JIAN'}),
本文链接地址:https://www.jiuchutong.com/zhishi/313384.html 转载请保留说明!

上一篇:织梦dedecms手机版伪静态教程(织梦手机端)

下一篇:公司员工私车公用如何做会计分录?(公司员工私车公用协议)

  • 联想小新air14键盘灯怎么打开(联想小新air14键盘亮屏幕不亮)

    联想小新air14键盘灯怎么打开(联想小新air14键盘亮屏幕不亮)

  • 苹果13长度是多少厘米(苹果13长度是多少寸)

    苹果13长度是多少厘米(苹果13长度是多少寸)

  • 抖音粉丝团灯牌可以隐藏吗(抖音粉丝团灯牌名称怎么改)

    抖音粉丝团灯牌可以隐藏吗(抖音粉丝团灯牌名称怎么改)

  • 红米note8pro nfc感应区位置(红米note8手机nfc感应区在哪里)

    红米note8pro nfc感应区位置(红米note8手机nfc感应区在哪里)

  • 淘宝个人主页访客记录查看方法是什么(淘宝个人主页访客记录)

    淘宝个人主页访客记录查看方法是什么(淘宝个人主页访客记录)

  • 快手小黄车提现手续费(快手小黄车提现流程)

    快手小黄车提现手续费(快手小黄车提现流程)

  • 联通流量卡网速慢的解决办法(联通流量卡网速快吗)

    联通流量卡网速慢的解决办法(联通流量卡网速快吗)

  • 抖音怎么获取抖音钻卡(抖音怎么操作)

    抖音怎么获取抖音钻卡(抖音怎么操作)

  • 怎么调出华为手机下面的三个键(怎么调出华为手机下面的导航键)

    怎么调出华为手机下面的三个键(怎么调出华为手机下面的导航键)

  • 图片转成pdf有什么用(图片转为pdf要钱吗)

    图片转成pdf有什么用(图片转为pdf要钱吗)

  • 微信字体已经最大了还是太小(微信字体已经最小但显示还是很大)

    微信字体已经最大了还是太小(微信字体已经最小但显示还是很大)

  • 电脑屏幕控制锁定怎么解除(电脑屏幕控制锁怎么解除)

    电脑屏幕控制锁定怎么解除(电脑屏幕控制锁怎么解除)

  • 加好友频繁多久才解封(加好友频繁多久才可以加QQ)

    加好友频繁多久才解封(加好友频繁多久才可以加QQ)

  • 华为mate30备忘录在哪里(华为mate30备忘录怎么做表格)

    华为mate30备忘录在哪里(华为mate30备忘录怎么做表格)

  • 芒果app弹幕怎么没有了(芒果弹幕怎么设置占屏幕)

    芒果app弹幕怎么没有了(芒果弹幕怎么设置占屏幕)

  • 华为p40闹钟在哪里设置(华为p40闹钟在哪里关闭)

    华为p40闹钟在哪里设置(华为p40闹钟在哪里关闭)

  • 苹果7p突然无服务蜂窝空白(苹果7p突然无服务)

    苹果7p突然无服务蜂窝空白(苹果7p突然无服务)

  • 请问苹果手机定位关了还能知道在哪里吗(请问苹果手机定位在哪里)

    请问苹果手机定位关了还能知道在哪里吗(请问苹果手机定位在哪里)

  • 小红书开店需要什么条件(小红书开店需要多少钱)

    小红书开店需要什么条件(小红书开店需要多少钱)

  • 为什么qq看点视频总是加载失败(为什么QQ看点视频看不了)

    为什么qq看点视频总是加载失败(为什么QQ看点视频看不了)

  • 天猫u先试用在哪申请(天猫u先试用在哪里找)

    天猫u先试用在哪申请(天猫u先试用在哪里找)

  • 京东拼购店红包怎么用(京东拼购店红包怎么使用)

    京东拼购店红包怎么用(京东拼购店红包怎么使用)

  • vivoy93带红外遥控器吗(vivoy93有无红外线)

    vivoy93带红外遥控器吗(vivoy93有无红外线)

  • 微信在新手机如何登录(微信在新手机如何下载)

    微信在新手机如何登录(微信在新手机如何下载)

  • 隐藏评价怎么恢复(隐藏的评价怎么找回来?)

    隐藏评价怎么恢复(隐藏的评价怎么找回来?)

  • dmxlauncher.exe进程是病毒吗 危险吗 dmxlauncher进程信息查询(dmc32.dll)

    dmxlauncher.exe进程是病毒吗 危险吗 dmxlauncher进程信息查询(dmc32.dll)

  • vue2 sass 安装及使用(vuescan怎么安装)

    vue2 sass 安装及使用(vuescan怎么安装)

  • 六款小巧的HTTP Server[C语言]  贵贵的博客  开发|架构|开源|共享

    六款小巧的HTTP Server[C语言] 贵贵的博客 开发|架构|开源|共享

  • ps入门之羽化是什么(ps里的羽化是什么意思)

    ps入门之羽化是什么(ps里的羽化是什么意思)

  • 保险公司支付的赔款计入什么科目
  • 城建税多少会减免
  • 购入车辆进项如何做账
  • 招标代理服务费由谁支付
  • 增值税发票丢了怎么办?
  • 横向转拨财政款应通过什么科目
  • 土地增值税清算的条件
  • 库存现金日记账格式
  • 二次股权转让的股权原值确认
  • 公司清算后未处理财产
  • 外购商品用于营销活动
  • 自来水公司代收污水处理费账务处理
  • 股权内部转让交增值税吗
  • 代理结算费用应该如何处理
  • 纳税人提供不动产租赁服务采取预收款方式
  • 怎么计提企业所得税
  • 小规模纳税人进项税额怎么处理
  • 收购发票税率是什么意思
  • 滴滴出行客运服务费 事业单位 报销
  • 贷款利息可以抵扣吗
  • 工地伙食标准 费用
  • 资金账簿印花税申报期限
  • 银行手续费会开发票吗
  • 安置房项目需要环评吗
  • 鸿蒙系统2.0怎么升级3.0
  • u启动pe装机工具如何重装系统win10
  • 什么叫存量房转移登记
  • 期间费用为什么叫期间费用
  • php保存数据
  • 大沙丘上的日落图片
  • phpinclude
  • phpjoin
  • 变动成本法计算营业利润
  • 企业清算的会计科目
  • 建筑企业分项目信息采集表怎么填
  • 退休返聘人员是否享受工会福利
  • php批量上传图片到服务器
  • 小规模纳税人增值税申报表怎么填
  • Vue+Element UI-el-date-picker时间日期选择器组件(实现向后端传值)
  • 基于专业性的家校双向互动,需要家长的学校教育参与
  • Vite4 + Vue3 + vue-router4 动态路由
  • 128种chatGPT可以为人类做的事情
  • 挥别2020逐梦2021
  • 预付一年的房租并收到了发票会计分录
  • 什么叫存量比率
  • 公司收不到的账款而发不出去怎么办
  • 织梦如何做提取卡密
  • 小规模企业购入原材料会计分录
  • 报税合同
  • 参加会计专业技术资格考试的人员,应具备那些条件
  • 发票入账需要哪些附件的文件
  • 资产负债表是怎么核对的
  • 财务挂账应该怎么做账
  • 已开普通发票记账联丢失怎么办?
  • 研发费用不一致说明
  • 收到国外客户的货款怎么做账
  • 普通发票可以改日期吗怎么改
  • 预付款开票货还没发
  • 房地产销售折让怎么开票
  • 进口关税,增值税,消费税
  • 行政事业单位能报销瓶装水吗
  • centos7软件
  • fedora8安装教程
  • win10专业装机版
  • avc用什么打开
  • linux常用命令修改
  • w8系统文件夹怎么设置密码
  • wow血条插件
  • 简单阐述javascript的主要作用
  • jquery源码是什么水平
  • angular.js
  • 怎么配置nodejs的环境
  • python编写api接口
  • python读取一个文件并写入另一个文件
  • js缩小图片尺寸
  • 阿里云服务器使用教程
  • 天津河东区医院地址电话
  • 发票开票人一定要真实姓名吗
  • 云南税务总局官网
  • 国家管网集团下属企业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设