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

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

  • 英特尔将 Arc GPU 和多 GPU 功能支持添加到 oneVPL 2022.1(英特尔将拆分图形芯片部门)

    英特尔将 Arc GPU 和多 GPU 功能支持添加到 oneVPL 2022.1(英特尔将拆分图形芯片部门)

  • 微信先用后付额度在哪里看(微信先用后付额度怎么提升)

    微信先用后付额度在哪里看(微信先用后付额度怎么提升)

  • 腾达信号扩展器怎么重新设置(腾达信号扩展器a9)

    腾达信号扩展器怎么重新设置(腾达信号扩展器a9)

  • 苹果短信已读是对方看了吗(苹果短信已读是看到了吗)

    苹果短信已读是对方看了吗(苹果短信已读是看到了吗)

  • 智学网在线考试有监控吗(智学网在线考试在哪)

    智学网在线考试有监控吗(智学网在线考试在哪)

  • 微信银行卡列表在哪里(开通微众银行卡)

    微信银行卡列表在哪里(开通微众银行卡)

  • word怎样限制每行字数(怎么限制编辑一篇word中的一段)

    word怎样限制每行字数(怎么限制编辑一篇word中的一段)

  • data文件可以删除吗(data数据能删除吗)

    data文件可以删除吗(data数据能删除吗)

  • 能投屏的视频软件(能投屏的视频播放软件)

    能投屏的视频软件(能投屏的视频播放软件)

  • 显卡内存有什么用(显卡内存有什么作用)

    显卡内存有什么用(显卡内存有什么作用)

  • 抖音下载视频对方会知道吗(抖音下载视频会被别人知道吗)

    抖音下载视频对方会知道吗(抖音下载视频会被别人知道吗)

  • 腾讯会员一个季是多久(腾讯会员多少钱一个季度多少钱)

    腾讯会员一个季是多久(腾讯会员多少钱一个季度多少钱)

  • 小米8青春版有红外线吗(小米8青春版有没有红外线功能)

    小米8青春版有红外线吗(小米8青春版有没有红外线功能)

  • qq好友删了聊天记录还有吗(qq好友删了聊天记录还在吗)

    qq好友删了聊天记录还有吗(qq好友删了聊天记录还在吗)

  • 华为mate30有几个摄像头(华为mate30有几个版本的区别)

    华为mate30有几个摄像头(华为mate30有几个版本的区别)

  • 小米怎么设置app使用时间(小米怎么设置APP自动关闭)

    小米怎么设置app使用时间(小米怎么设置APP自动关闭)

  • 维沃手机怎么恢复出厂设置(维沃手机怎么恢复微信聊天记录)

    维沃手机怎么恢复出厂设置(维沃手机怎么恢复微信聊天记录)

  • iphone xr支持nfc吗(xr支持nfc功能吗)

    iphone xr支持nfc吗(xr支持nfc功能吗)

  • 快手同城招聘在哪里(快手同城招聘信息在哪里找)

    快手同城招聘在哪里(快手同城招聘信息在哪里找)

  • word怎么设置标题级别(word怎么设置标题段文字效果)

    word怎么设置标题级别(word怎么设置标题段文字效果)

  • 苹果微信能分身吗(苹果微信能分身份吗)

    苹果微信能分身吗(苹果微信能分身份吗)

  • 如何手机上打出空格(如何手机上打出角度的符号呢)

    如何手机上打出空格(如何手机上打出角度的符号呢)

  • 电脑风扇怎么安装(电脑风扇怎么安装图解)

    电脑风扇怎么安装(电脑风扇怎么安装图解)

  • 英格兰怀特岛上的尼德尔斯白垩岩石和19世纪的灯塔。 (© CBCK Christine/iStock/Getty Images Plus)(怀特岛郡国旗)

    英格兰怀特岛上的尼德尔斯白垩岩石和19世纪的灯塔。 (© CBCK Christine/iStock/Getty Images Plus)(怀特岛郡国旗)

  • uniapp使用高德JS API(uniapp使用高德猎鹰服务)

    uniapp使用高德JS API(uniapp使用高德猎鹰服务)

  • 税法的分类都有什么
  • 小规模纳税人普票交税吗
  • 包工包料怎么付款流程
  • 付了定金一定会有货吗
  • 存货清查的结果
  • 农产品进项税额计算扣除的方法
  • 股息红利是否纳入个税合并征税
  • 销售折扣开票怎么开
  • 大额虚开发票做转出税款入什么会计科目?
  • 员工借款后离职怎么办
  • 入库出库模板
  • 去年支付的费用今年取得发票
  • 银行手续费没拿可以退吗
  • 首次购置增值税税控系统
  • 调解书和判决书执行力度一样吗
  • 河道费怎么计算
  • 补充养老保险税收规定扣除率
  • 新注册公司税务报到
  • 应付账款无法支付所得税处理
  • 企业的应收帐款增长率超过销售收入增长率是正常现象
  • 投资税收抵免
  • 外贸企业增值税发票需要认证吗
  • 购买汽车分期付款利息怎么算
  • 投资性房地产的后续计量从成本模式转为公允价值模式的
  • 余款退回会计分录
  • 让记事本文件自动删除
  • 事业单位需要交企业所得税吗
  • 销售部发生广告宣传费计入财务费用
  • 公司为员工交的社保比例
  • kprcycleaner.exe是什么
  • 损益类科目包括利润分配吗
  • php无限级分类
  • 材料成本差异属于流动资产吗
  • 残疾人加计扣除工资按应发还是实发
  • 织梦怎么样
  • 认缴制对实务操作的可能影响有哪些?
  • 个体工商户开税户
  • 一般纳税人哪些行业可以简易计税
  • 借款的帐务处理?
  • 施工企业的内部往来
  • 政府补贴需要还吗
  • mysql查询在什么之间
  • 企业迁移税务如何办理
  • 将原材料出售会计分录
  • 付款退回在现金里怎么查
  • 计提本月短期借款利息500元会计分录
  • 事业单位非税收入帐务处理
  • 汇兑损益的账务处
  • 水利建设基金的征税对象
  • 企业所得税季报营业成本包括哪些
  • 经营地址怎么变更
  • 合伙企业应该用什么会计制度
  • mysql 的replace into实例详解
  • mysql分页性能
  • windows vista电脑
  • 复制粘贴报错
  • linux系统中安装jar包没有
  • vmware workstation15安装ubuntu
  • 如何安装win7系统教程
  • 快速锁定单元格的方法
  • python import同一目录的其他文件
  • cocos2dx用checkbox实现单选框和button实现table按钮
  • linux判断脚本执行成功
  • shell脚本如何注释
  • 批处理命令是什么语言
  • shell常用命令及功能
  • 批处理命令不允许用户在文件夹内的文件
  • JavaScript中的NaN代表什么
  • python利用format方法保留三位小数
  • jquery实现隔行变色的分享特效页面
  • 浅谈如何培养孩子的注意力
  • javascript如何
  • jquery 是否显示
  • javascript常用的数据类型有哪些
  • 广东电子税务系统社保1号都能申报吗
  • 四川国税局发票查询
  • 如何网上开税票
  • 建行代理贵金属签约
  • 税务局风险防控工作总结
  • 交完了契税后可以办房产证吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设