位置: 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手机版伪静态教程(织梦手机端)

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

  • 红米k30支持息屏显功能吗(红米k30可以设置息屏吗)

    红米k30支持息屏显功能吗(红米k30可以设置息屏吗)

  • 私信是啥意思(私信是啥意思网络用语)

    私信是啥意思(私信是啥意思网络用语)

  • 淘宝定制产品退货规则(淘宝定制产品退货打官司有用吗)

    淘宝定制产品退货规则(淘宝定制产品退货打官司有用吗)

  • iphone7p换电池后遗症(iphone7p换电池后有什么影响)

    iphone7p换电池后遗症(iphone7p换电池后有什么影响)

  • soul隐身发布的瞬间好友能看见吗(soul隐身发布的瞬间)

    soul隐身发布的瞬间好友能看见吗(soul隐身发布的瞬间)

  • lumion复制快捷键(lumion的复制是什么键)

    lumion复制快捷键(lumion的复制是什么键)

  • 快手好友的动态几天消失(快手好友的动态为什么长时间不更新)

    快手好友的动态几天消失(快手好友的动态为什么长时间不更新)

  • 戴尔电脑充不进电什么原因(戴尔电脑充不进去电指示灯橙色闪烁)

    戴尔电脑充不进电什么原因(戴尔电脑充不进去电指示灯橙色闪烁)

  • 锁屏怎么显示微信消息(锁屏怎么显示微信步数)

    锁屏怎么显示微信消息(锁屏怎么显示微信步数)

  • 最小生成树和最短路径的区别(最小生成树和最小支撑树)

    最小生成树和最短路径的区别(最小生成树和最小支撑树)

  • 华为手机莫名死机自动重启(华为手机莫名死机自动重启,重启后下载了很多软件)

    华为手机莫名死机自动重启(华为手机莫名死机自动重启,重启后下载了很多软件)

  • 小米手机充不进电(小米手机充不进去电怎么回事,也开不开机)

    小米手机充不进电(小米手机充不进去电怎么回事,也开不开机)

  • m1908c3ke是什么型号(m1908c3je是什么型号)

    m1908c3ke是什么型号(m1908c3je是什么型号)

  • ipad第六代是air几(ipad第六代是air1吗)

    ipad第六代是air几(ipad第六代是air1吗)

  • 开放式耳机和封闭式耳机的区别(开放式耳机和封闭式耳机音质)

    开放式耳机和封闭式耳机的区别(开放式耳机和封闭式耳机音质)

  • 小米6的耳机孔在哪里(小米6的耳机插口)

    小米6的耳机孔在哪里(小米6的耳机插口)

  • 乐视手机如何解锁(乐视手机如何解除耳机模式)

    乐视手机如何解锁(乐视手机如何解除耳机模式)

  • 微信云文件在哪(微信云文档如何使用教程)

    微信云文件在哪(微信云文档如何使用教程)

  • 苹果x摄像头多少像素(苹果x摄像头多少倍)

    苹果x摄像头多少像素(苹果x摄像头多少倍)

  • 微机中bus是指(微机中bus是什么意思)

    微机中bus是指(微机中bus是什么意思)

  • iphone11贴什么膜(苹果11贴什么膜好用)

    iphone11贴什么膜(苹果11贴什么膜好用)

  • 淘宝帮我选在哪里找(淘宝帮我选记录怎么删除)

    淘宝帮我选在哪里找(淘宝帮我选记录怎么删除)

  • pictures是什么文件夹(pictures是什么英文)

    pictures是什么文件夹(pictures是什么英文)

  • oppoa9和荣耀8x对比(oppoa9和荣耀8x哪个好)

    oppoa9和荣耀8x对比(oppoa9和荣耀8x哪个好)

  • linkedin微信如何用(linkedin 微信)

    linkedin微信如何用(linkedin 微信)

  • 百旺金税盘官网
  • 财务管理考试时间多长
  • 固定资产怎么确定是否减值
  • 航空公司开具的个人抬头的发票可以税前扣除吗
  • 结转发出材料会计分录
  • 建筑公司成本发票不够
  • 没有进货票的商品可以销售吗
  • 管理咨询公司需要什么条件才能开发票
  • 公司转账给公司会计分录
  • 一般纳税人转小规模怎么办理
  • 高新企业申报指南
  • 增值税总分机构可以汇总纳税吗
  • 出纳人员怎么进入会计
  • 个人所得税应纳税额计算表图片
  • 跨年应收账款账务错误怎么调整
  • 车辆的增值税和消费税
  • 个税手续费返还要交增值税吗
  • 应收账款余额包括预收账款
  • 安卓系统详解
  • win11资源管理器卡死
  • 收到发票已入账什么意思
  • php数组函数输出《咏雪》里有多少"片"字
  • 其他应付款在现金流量表怎么填
  • 个体户变更为有限公司成立时间
  • iframe嵌套页面点击里面的按钮
  • laravel快速入门
  • 个人独资企业是小规模纳税人吗
  • Yii2创建多界面主题(Theme)的方法
  • 万能转换器mp4
  • dede标签的使用
  • 费用报销审批单和费用报销单区别
  • 承兑汇票大回头是什么意思
  • 制造费用期末要结转吗
  • 进口货物应纳增值税的计算公式
  • 租赁期间因占有、使用租赁物获得的收益
  • 收到投资款如何做账务处理
  • 固定资产出售账面价值计入什么科目
  • 现金支付中的现金是什么
  • 什么是应收账款保理
  • 从增值税抵扣进项怎么算
  • 无形资产摊销怎么计算月摊销额
  • 空调的预计净残值是什么
  • 废品损失如何处理
  • 房地产开发企业成本核算方法
  • 生产费用明细账
  • mysql如何列转行
  • 正版vista一键升级win7
  • windows2003服务
  • 纸嫁衣6第四章攻略全文图解
  • 昂达主板插线安装图解
  • ubuntu每次开机都会进入grub
  • msmpeng.exe是什么进程
  • 怎么操作win10系统
  • xp电脑注册表怎么打开
  • 64位下无法运行32位程序的解决方法 提示未指定提供程序,也没有指派的默认提供程序
  • win10rs2是哪个版本
  • win8账户锁定无法登录
  • vb win7
  • 观察者模式指令
  • js内存泄漏的原因及解决办法
  • shell脚本获取进程pid
  • python 列表分片
  • 安卓版影音播放器哪个好用
  • js上滑翻页
  • javascript 日期运算
  • shell脚本-p
  • Unity Enemy behaviour
  • JavaScript中的数据类型
  • 彻底解决老鼠进发动机舱
  • python怎么编函数
  • window运行怎么打开
  • ajax 分页
  • python ftp storbinary
  • 运满满订单取消技术服务费退还吗
  • 年收入12w
  • 大排量车船税怎么减免
  • 国税干部任前谈心谈话
  • 上海国家税务局官网发票查验平台
  • 北京国税电子税务局网址
  • 财务会计制度及核算软件备案怎么填
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设