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

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

  • 华为手机如何触屏调节音量(华为手机如何触发紧急呼叫)

    华为手机如何触屏调节音量(华为手机如何触发紧急呼叫)

  • 抖音如何深度清理(抖音如何深度清理数据和文稿)

    抖音如何深度清理(抖音如何深度清理数据和文稿)

  • 哪种防火墙类型的安全级别最高(有哪些类型的防火墙)

    哪种防火墙类型的安全级别最高(有哪些类型的防火墙)

  • office工具需要安装吗(安装office需要什么插件)

    office工具需要安装吗(安装office需要什么插件)

  • r9tm是全网通吗

    r9tm是全网通吗

  • 手机照片太多占内存怎么办呢(手机照片太多占空间吗)

    手机照片太多占内存怎么办呢(手机照片太多占空间吗)

  • Word如何删除页眉和页脚(word如何删除页脚上的一道横线)

    Word如何删除页眉和页脚(word如何删除页脚上的一道横线)

  • ipad升级ios13(ipad升级ios16好不好)

    ipad升级ios13(ipad升级ios16好不好)

  • 为什么mp4显示文件格式不支持(为什么mp4显示文件格式不支持音乐)

    为什么mp4显示文件格式不支持(为什么mp4显示文件格式不支持音乐)

  • 拼多多工单处理严重吗(拼多多工单处理怎么办)

    拼多多工单处理严重吗(拼多多工单处理怎么办)

  • 苹果11自动旋转怎么设置(苹果11自动旋转屏幕失灵)

    苹果11自动旋转怎么设置(苹果11自动旋转屏幕失灵)

  • 华为省电模式有啥影响(华为省电模式有闹钟吗)

    华为省电模式有啥影响(华为省电模式有闹钟吗)

  • 探探是不是一定要充钱才能聊天(探探是不是一定要加微信)

    探探是不是一定要充钱才能聊天(探探是不是一定要加微信)

  • 网桥在osi第几层(网桥在osi的哪一层)

    网桥在osi第几层(网桥在osi的哪一层)

  • 快手为什么不能发私信(快手为什么不能K歌了)

    快手为什么不能发私信(快手为什么不能K歌了)

  • 苹果7强制重启怎么按(苹果7强制重启怎么操作手机)

    苹果7强制重启怎么按(苹果7强制重启怎么操作手机)

  • 如何查询个人信用记录?(如何查询个人信用卡有多少个)

    如何查询个人信用记录?(如何查询个人信用卡有多少个)

  • 如何自己换盖板(怎么自己换盖板)

    如何自己换盖板(怎么自己换盖板)

  • qq被误封7天了怎么办(qq被误封7天了怎么恢复)

    qq被误封7天了怎么办(qq被误封7天了怎么恢复)

  • 企业抖音号设置联系电话(企业抖音号怎么设置)

    企业抖音号设置联系电话(企业抖音号怎么设置)

  • 怎么投诉滴滴出行司机(如何投诉滴滴打车)

    怎么投诉滴滴出行司机(如何投诉滴滴打车)

  • airpods后面按键干嘛的(airpods后边的按键)

    airpods后面按键干嘛的(airpods后边的按键)

  • 华为手机后面的进网许可可以撕吗(华为手机后面的标签怎么弄掉)

    华为手机后面的进网许可可以撕吗(华为手机后面的标签怎么弄掉)

  • word文档保存快捷键(word文档保存快捷键用不了)

    word文档保存快捷键(word文档保存快捷键用不了)

  • Win11如何修改任务栏大小 Win11修改任务栏大小方法(win11如何修改任务栏颜色)

    Win11如何修改任务栏大小 Win11修改任务栏大小方法(win11如何修改任务栏颜色)

  • xzcat命令  查看xz压缩文件的内容(linux用cat命令查看)

    xzcat命令 查看xz压缩文件的内容(linux用cat命令查看)

  • 金税盘系统维护注册码
  • 现金流量表财务费用怎么填
  • 一般纳税人交的增值税能不能抵扣企业所得税
  • 开发间接费什么时候计提
  • 车辆抵押登记费用可以退回吗
  • 企业票据贴现属于什么业务
  • 收到上个月支付的短信
  • 第一季度盈利第二季度亏损全年盈利
  • 劳务派遣差额征税税率是多少
  • 贸易公司购买汽车的发票可以用抵公司的税吗
  • 刷卡手续费可以开经纪代理服务费吗
  • 小微企业季度所得税怎么计算
  • 学校购货合同
  • 企业所得税地方分成比例
  • 香港公司的法人叫什么
  • 开立银行承兑汇票清单怎么盖章
  • 设备安装服务费税收分类编码
  • 原始股解禁后减持的条件是什么
  • 票据质押出票如何操作
  • 稿酬计入工资所得吗
  • 农产品进项税额怎么计算
  • 单位支付安装天然气费
  • 复制粘贴如何提取文字
  • 普通发票主营业务收入销项负数发票怎么做账
  • 补缴的耕地占用税怎么做账
  • 财产保险公司手续费税前扣除最新
  • 财务人员应计入什么科目
  • vue表单验证数字
  • 作废的专票能认证过去吗
  • 凭证字号怎么写
  • 购买土地支付的契税怎么入账
  • 怎么做应收应付账款分录
  • 无形资产商标权摊销
  • 现金流量表的填写说明
  • 公司给买员工保险
  • 退税没有退的部分怎么做账
  • 无偿赠送怎么做账
  • 个人社保的缴纳时间
  • 应交税费企业所得税科目
  • mysql 5.5 5.6 5.7
  • 幼儿园园服已发给孩子怎么通知家长
  • 低值易耗品摊销方法有几种
  • 防暑降温费计入工资还是福利费
  • 公司交残保金是什么意思
  • 主营业务成本里的工资
  • 辅导期一般纳税人什么意思
  • 应收账款收不回来怎么处理分录
  • 经营杠杆系数的经济含义
  • 分公司注销库存车怎么办
  • 增值税专用发票查询系统官方网站
  • 增值税转型不得超过多少
  • 企业所得税国税地税怎么分
  • 房地产企业的企业所得税是多少
  • 为什么购入股票是综股
  • 残疾人就业保障金上年职工工资总额
  • 会计每月账务处理流程
  • 小规模纳税人公司可以开专票吗
  • 在长期股权投资中,如何理解控制、重大影响?
  • 工程施工和主营业务成本关系
  • 判断某个字段的值是否在指定的范围内
  • win10找不到打印机驱动
  • 苹果电脑快捷键截图怎么截
  • linux的ps命令用法
  • ubuntu 14.4
  • Mac系统中使用QuickTime Player实现屏幕录像图文教程
  • 怎么用linux运行c程序
  • android开发详解
  • android+
  • unity网格地形
  • jquery类型转换
  • python web网站
  • html伸缩布局
  • python多进程共享对象
  • python魔法方法有啥用
  • 河北税务局是干嘛的
  • 小规模纳税人可以开增值税专用发票吗
  • 税务申报系统如何改成密码登录
  • 法制建设包括哪三个方面
  • 河北国家税务局官网站
  • 西乡塘区税务局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设