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

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

  • oppor17电池多大毫安(oppor17电池多大毫安在哪看)

    oppor17电池多大毫安(oppor17电池多大毫安在哪看)

  • 如何查看红包封面(如何查看红包封面有多少)

    如何查看红包封面(如何查看红包封面有多少)

  • 微信小额支付免密怎么开启(微信小额支付免密码怎么关闭)

    微信小额支付免密怎么开启(微信小额支付免密码怎么关闭)

  • 苹果音量键怎么区分铃声和音量(苹果音量键怎么调节铃声)

    苹果音量键怎么区分铃声和音量(苹果音量键怎么调节铃声)

  • 华为gt运动版时尚版区别

    华为gt运动版时尚版区别

  • 电脑怎么把视频放在一个文件夹里面(电脑怎么把视频转成mp3音频)

    电脑怎么把视频放在一个文件夹里面(电脑怎么把视频转成mp3音频)

  • 华为手机亮度调到最高还是很暗(华为手机亮度调节怎么老是自动就给调)

    华为手机亮度调到最高还是很暗(华为手机亮度调节怎么老是自动就给调)

  • vivo手机下载的软件不在桌面上(vivo手机下载的音乐在哪个文件夹)

    vivo手机下载的软件不在桌面上(vivo手机下载的音乐在哪个文件夹)

  • 苹果锁屏后自动亮屏怎么办(苹果锁屏后自动断wifi)

    苹果锁屏后自动亮屏怎么办(苹果锁屏后自动断wifi)

  • 锁屏动画怎么设置(锁屏动态怎么弄)

    锁屏动画怎么设置(锁屏动态怎么弄)

  • medtl00是华为什么型号(华为med-tl00什么型号)

    medtl00是华为什么型号(华为med-tl00什么型号)

  • 怎么知道本机号码是多少(怎么知道本机号码vivo)

    怎么知道本机号码是多少(怎么知道本机号码vivo)

  • qq群有考勤统计功能吗(qq群有考勤统计表吗)

    qq群有考勤统计功能吗(qq群有考勤统计表吗)

  • 腾讯免流量怎么设置(腾讯免流量怎么弄)

    腾讯免流量怎么设置(腾讯免流量怎么弄)

  • al30华为是什么型号(lld_al30华为什么型号)

    al30华为是什么型号(lld_al30华为什么型号)

  • 二进制数110011转换成八进制数是(二进制数110011转换成八进制数是计算过程)

    二进制数110011转换成八进制数是(二进制数110011转换成八进制数是计算过程)

  • 华为gt手表咋打电话(华为gt手表教程)

    华为gt手表咋打电话(华为gt手表教程)

  • 文档中画出的直线怎么变色(文档中画出的直线怎么画)

    文档中画出的直线怎么变色(文档中画出的直线怎么画)

  • 手机系统升级后怎么恢复原来系统(手机系统升级后怎么恢复以前的系统)

    手机系统升级后怎么恢复原来系统(手机系统升级后怎么恢复以前的系统)

  • ios13怎么不能更新app了(苹果手机ios13.0怎么更新不了)

    ios13怎么不能更新app了(苹果手机ios13.0怎么更新不了)

  • 机顶盒跟网络电视切换(机顶盒和网络)

    机顶盒跟网络电视切换(机顶盒和网络)

  • 流光快门怎么拍摄人(流光快门怎么拍摄)

    流光快门怎么拍摄人(流光快门怎么拍摄)

  • 手机uc私密空间在哪里(uc私密空间怎么上锁)

    手机uc私密空间在哪里(uc私密空间怎么上锁)

  • 什么叫数字化技术(什么叫数字化技术的应用)

    什么叫数字化技术(什么叫数字化技术的应用)

  • 苹果11和苹果xs的区别(苹果11和苹果xs max拍照哪个更好一些)

    苹果11和苹果xs的区别(苹果11和苹果xs max拍照哪个更好一些)

  • iponexr和iponex区别(iponex和iphonexr选哪个)

    iponexr和iponex区别(iponex和iphonexr选哪个)

  • word分页显示(word分页显示怎么合并)

    word分页显示(word分页显示怎么合并)

  • cpu在电脑什么位置(cpu在电脑中的位置)

    cpu在电脑什么位置(cpu在电脑中的位置)

  • 苹果8p与苹果x的区别(苹果8p和苹果x选哪个)

    苹果8p与苹果x的区别(苹果8p和苹果x选哪个)

  • win10怎么批量下载网页中图片(win10 批量安装软件)

    win10怎么批量下载网页中图片(win10 批量安装软件)

  • phpcms判断是否有下级栏目(php判断是否存在某字符串)

    phpcms判断是否有下级栏目(php判断是否存在某字符串)

  • 折旧年限与税法有关吗
  • 车船税每年都要交吗不交有什么影响
  • 一般纳税人企业所得税多久申报一次
  • 支付给法律顾问的钱
  • 外贸出口备案需准备什么资料
  • 车保险备注栏车船税如何记账
  • 企业所得税计算例题
  • 个体工商户怎么变更法人
  • 领用原材料 会计分录
  • 高铁票抵扣进项税
  • 厂家试驾车和经销商试驾车
  • 不征税收入怎么申报企业所得税
  • 企业所得税汇算清缴补缴税款分录
  • 机械租赁费怎么算
  • 电子营业执照可以开通抖音小店吗
  • 小规模企业季度超过30万,怎么收取增值税
  • 小规模纳税人自开专票
  • 增值税发票查验平台官网网络异常
  • 混合销售和兼营的区别
  • 银行利息所得税调整方案
  • 采购均价怎么计算
  • 季度所得税报表怎么填
  • 出售设备折旧
  • 定额备用金的账务怎么做
  • 库存现金出现负数怎么跟客户沟通
  • 单位收到社保补贴会计怎样处理
  • 佣金可以开票吗
  • 用苹果macbook pro怎样
  • 超市打折优惠
  • wordpress网站打开很慢
  • 然后用u盘重装系统
  • php unit
  • win10版本2004和20h2
  • 员工自己垫付的费用怎么走账
  • 新准则规定
  • PHP:zip_entry_compressionmethod()的用法_Zip函数
  • 补发工资怎么做账
  • 银行贷款利息已划转支付
  • 借款合同印花税怎么做账
  • 工会经费免征三年的文件山东
  • ts入门教程
  • CSDN接入AIGC辅助创作,对此你怎么看?
  • 库存商品暂估入库金额如何确定
  • 银行开出的承兑怎么兑现
  • 公司开一般户需要多久
  • 其他收益包含
  • 资产持有过程中缴纳的税收有哪些
  • 高速公路费如何开票
  • 子公司没有收入,只有费用如何企业所得税汇算清缴
  • 对方多开票怎么处理
  • 库存商品什么时候确认收入
  • 社保金的滞纳金个人承担吗?
  • 税控盘服务费减免政策
  • 其他贷款服务计入什么科目
  • 仓储费用分配率
  • 哪些个体户要报残保金
  • 未达起征点怎么报税
  • 工会经费计提比例0.8%
  • 企业会计准则2023电子版
  • 多少金额以上算固定资产
  • 个税返还开票什么项目
  • sql数据库怎么执行命令
  • 单网卡计算机有几个网络接口
  • win2003回收站
  • xp系统换成win10
  • ubuntu18.04环境变量
  • linux系统中安装软件
  • unity 数学
  • JavaScript中的变量名不区分大小写
  • 文本左右对齐排版怎么弄
  • Linux命令行和shell脚本编程大全
  • canvas实例
  • jquery使用css
  • 2个月培训
  • javascript toggle
  • js文件被加密
  • 福建国税电子税务局app
  • 车船税完税证明开具如何开具
  • 电信追缴欠费的工作方案有哪些
  • 网上查询公司营业执照
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设