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

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

  • opporeno6pro没有原装耳机吗(opporeno6原生壁纸)

    opporeno6pro没有原装耳机吗(opporeno6原生壁纸)

  • 不想接电话怎么设置空号(不想接电话怎么设置停机)

    不想接电话怎么设置空号(不想接电话怎么设置停机)

  • PPT自动保存时间

    PPT自动保存时间

  • 手机出厂时会有划痕吗(手机出厂时会有病毒吗)

    手机出厂时会有划痕吗(手机出厂时会有病毒吗)

  • 支付宝有新消息不提醒(支付宝有新消息为什么没有小红点)

    支付宝有新消息不提醒(支付宝有新消息为什么没有小红点)

  • 微信群待办怎么发布(微信群待办怎么设置)

    微信群待办怎么发布(微信群待办怎么设置)

  • 笔记本i5是什么意思(笔记本电脑的i5指什么)

    笔记本i5是什么意思(笔记本电脑的i5指什么)

  • 电脑任务栏点击没反应是什么原因(电脑任务栏点击没反应)

    电脑任务栏点击没反应是什么原因(电脑任务栏点击没反应)

  • 华为手机管家无法校准流量(华为手机管家无法强制停止)

    华为手机管家无法校准流量(华为手机管家无法强制停止)

  • 程序设计语言的基本要素(程序设计语言的编译程序属于什么软件)

    程序设计语言的基本要素(程序设计语言的编译程序属于什么软件)

  • 电脑开vt有什么用(电脑开vt的坏处)

    电脑开vt有什么用(电脑开vt的坏处)

  • ctrl shift是什么快捷键(ctrl shift是什么键)

    ctrl shift是什么快捷键(ctrl shift是什么键)

  • 单片机用什么软件编程(单片机用什么软件写程序)

    单片机用什么软件编程(单片机用什么软件写程序)

  • 苹果8p可以刷门禁吗(苹果8p可以刷门禁系统吗)

    苹果8p可以刷门禁吗(苹果8p可以刷门禁系统吗)

  • 抖音里的抖币怎么提现(抖音里的抖币怎么换成钱)

    抖音里的抖币怎么提现(抖音里的抖币怎么换成钱)

  • 怎么查看苹果自动扣费(怎么查看苹果自动扣费业务记录)

    怎么查看苹果自动扣费(怎么查看苹果自动扣费业务记录)

  • 微信语音电话听不清对方在讲什么(微信语音电话听不到声音怎么办?)

    微信语音电话听不清对方在讲什么(微信语音电话听不到声音怎么办?)

  • 莹石云视频怎么解绑设备(萤石云视频怎么添加成员)

    莹石云视频怎么解绑设备(萤石云视频怎么添加成员)

  • 快手怎么粘贴别人昵称(快手怎么粘贴别人昵称教程)

    快手怎么粘贴别人昵称(快手怎么粘贴别人昵称教程)

  • 苹果手机来电话平板也响怎么取消(苹果手机来电话怎么拒绝接听)

    苹果手机来电话平板也响怎么取消(苹果手机来电话怎么拒绝接听)

  • 华为折叠手机mate x3无线充电(华为折叠手机mateXs3)

    华为折叠手机mate x3无线充电(华为折叠手机mateXs3)

  • 再不跳槽,就晚了(不跳槽怎么形容)

    再不跳槽,就晚了(不跳槽怎么形容)

  • Vs Code配置前端环境及运行(vscode前端必备扩展)

    Vs Code配置前端环境及运行(vscode前端必备扩展)

  • 印花税申报是含税收入还是不含税收入
  • 运输费用怎么计算出来
  • 高企入库补贴要交企业所得税吗
  • 交易性金融资产属于什么科目
  • 企业所得税退抵税费申请(汇算清缴)怎么撤销
  • 无票收入应该怎么做
  • 劳务派遣公司如果倒闭了怎么办
  • 应付职工薪酬期末余额在借方表示什么
  • 人力资源代缴社保合法吗
  • 固定资产当月入账下月计提折旧
  • 挂靠企业所得税怎么办?
  • 企业重组中撤资所得税有哪些处理规则?
  • 贸易公司购买汽车的发票可以用抵公司的税吗
  • 减免税款是否要结转到未交增值税?
  • 土地使用税如何计算缴纳
  • 营改增后如何确认老项目营改增前收入
  • 企业的其他业务收入有
  • 幼儿园收的餐费必须与食谱做平账怎么调账
  • 销售商品包安装如何确认收入
  • 费用化支出含义
  • mac 10.14.1
  • 现金日记账余额为零要怎么填
  • 商标注册费相关法律法规
  • 预付维修费计入入账价值吗
  • 收货款时少收几十元,分录怎么做
  • 无形资产摊销是什么科目
  • 主板bios在线升级
  • 如何回到一年前的方法
  • 无法安装字体,显示字体无效win10
  • php怎么创建数据表
  • mac教程视频
  • 残疾人就业保障金怎么申报
  • 成本法转为权益法属于会计政策变更吗
  • pytorch说明文档
  • 福利费需要缴税吗
  • 公司哪些支出费用可以扣
  • php正则匹配时间
  • php读取excel数据
  • 建筑保温材料出台了哪些限制政策
  • 增值税iva
  • 减免税在借方如何结转
  • 主营业务收入未收到钱
  • 工厂的污水处理站作用
  • PostgreSQL更新表时时间戳不会自动更新的解决方法
  • 车船使用税的征收标准是多少
  • 普通动产和特殊动产登记的区别
  • 租赁收入会计分录怎么做
  • 劳务报酬的个人所得税
  • 小规模纳税人有几种税率
  • 医院购买医疗器械
  • 金税四期对企业影响
  • 以前年度损益调整
  • 其他流动资产待摊费用
  • 出租房屋会计账务处理
  • 内地汇丰银行账户管理费
  • 建筑企业成本核算方法
  • 补交以前年度的房产税会计分录
  • 外经证适用范围
  • 跨两年的发票可以冲红吗
  • 培训费用支出
  • 基本户注销了还能查询流水吗
  • 什么是划分?划分应当遵守哪些规则?
  • 会计核算采用什么形式
  • fix it club
  • ubuntu安装音乐软件
  • macbookair登陆
  • centos8设置默认启动命令界面
  • linux中修改命令
  • cocos2d-js-min.js
  • bootstrap怎么用
  • cocos2dx ActionManager播放动画回调问题
  • linux系统监控脚本
  • fflogs隐藏数据
  • unity dllimport
  • unity xml读取
  • div与script
  • unity怎么录屏
  • 贵州税务举报
  • 留学生在美国买房子需要什么条件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设