位置: IT常识 - 正文

【Vue】vuex-五个核心(vuex五个核心概念)

编辑:rootadmin
【Vue】vuex-五个核心

推荐整理分享【Vue】vuex-五个核心(vuex五个核心概念),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vuex五大模块,vuex的五个,vuex的五个属性及使用方法,vuex的五个属性及使用方法,vuex包含几个部分,vuex的五个,vuex包含几个部分,vuex的五个,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

🚩🚩🚩 💎个人主页: 阿选不出来 💨💨💨 💎个人简介: 一名大二在校生, 不定时更新自己学习道路上的一些笔记. 💨💨💨 💎目前开发的专栏: JS 🍭Vue🍭JS进阶 💨💨💨 💎接上一篇 Vue-条件,列表渲染-key的底层原理

vuexvuex1.什么是vuex2.什么时候用Vuex3.搭建vuex环境4.五个核心StateMutationActiongettersModules5.四个map方法的使用📢📢📢写在最后vuex1.什么是vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

2.什么时候用Vuex多个组件依赖于同一状态.来自不同组件的行为需要变更同一状态.

Vuex 可以帮助我们管理共享状态,并附带了更多的概念和框架。这需要对短期和长期效益进行权衡。如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。如果您需要构建一个中大型单页应用,您很可能会考虑如何更好地在组件外部管理状态,Vuex 将会成为自然而然的选择。

3.搭建vuex环境安装:npm install vuex@next --save创建文件: src/store/index.js// 引入Vue核心库import Vue from 'vue'// 引入Vueximport Vuex from 'vuex'//应用Vuex插件Vue.use(Vuex)//准备actions对象---响应组件中用户的动作const actions = {}//准备mutation对象---修改state中的数据const mutation = {}//准备state对象---保存具体的数据const state = {}// 创建并暴露storeexport default new Vuex.store({ actions, mutation, state})

在 main.js中创建vm时传入 store配置项

......// 引入storeimport store from './store'......//创建vmnew Vue({ el: '#app', render: h => h(app), store})4.五个核心

基础使用:

初始化数据, 配置 action, 配置 mutations , 操作文件 store.js// 引入Vuex 核心库import Vue from 'vue'// 引入Vueximport Vuex from 'vuex'// 引用VuexVue.use(Vuex)const actions = { //响应组件中的动作 jia(context, value) { context.commit('JIA',value) }, jian(context, value) { context.commit('JIAN', value) }}const mutations = { //执行加 JIA(state, value) { state.sum += value }}// 初始化数据const state = { sum:0}//创建并暴露storeexport default new Vuex.Store({ actions, mutations, state})组件中读取vuex中的数据: $store.state.sum组件中修改vuex中的数据: $store.dispatch('action中的方法名', 数据) 或 $store.commit('mutation中的方法名', 数据)

备注:若没有网络请求或其他业务逻辑,组件中也可以越过actions,既不写dispatch,直接编写commit备注: 若没有网络请求或其他业务逻辑, 组件中也可以越过actions, 既不写 dispatch, 直接编写commit备注:若没有网络请求或其他业务逻辑,组件中也可以越过actions,既不写dispatch,直接编写commit

State

用于初始化数据,提供唯一的公共数据源,所有共享的数据统一放到store的state进行储存,相似与data

【Vue】vuex-五个核心(vuex五个核心概念)

组件内通过 this.$store.state.count 访问到. HTML内通过 $store.state.count 访问到.

Mutation

更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。

Vuex 中的 mutation 非常类似于事件:每个 mutation 都有一个字符串的事件类型 (type)和一个回调函数 (handler)。这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数:

mutations: { increment (state) { // 变更状态 state.count++ } }

调用 在组件中使用:this.$store.commit('increment') 提交载荷 : this.$store.commit('increment',10) 你可以向 store.commit 传入额外的参数,即 mutation 的载荷(payload), 参数可以是字符串也可以是对象. 对象风格的提交方式:

this.$store.commit({ type: 'increment', amount: 10})

注意::: mutation 必须是同步函数

Action

Action 提交的是 mutation,而不是直接变更状态。 Action 可以包含任意异步操作。

使用-参数 Action 函数接受一个与 store 实例具有相同方法和属性的 context 对象,因此你可以调用 context.commit 提交一个 mutation,或者通过 context.state 和 context.getters 来获取 state 和 getters。 调用 在组件内 : this.$store.dispatch('increment')

// 以载荷形式分发this.$store.dispatch('incrementAsync', { amount: 10})// 以对象形式分发this.$store.dispatch({ type: 'incrementAsync', amount: 10})getters概念: 当state中的数据需要经过加工后在使用时, 可以使用getters加工.在 store.js 中追加 getters 配置......const getters = { bigSum(state){ return state.sum * 10 }}//创建并暴露storeexport default new Vuex.store({ ...... getters})组件中读取数据: $store.getters.bigSumModules目的: 让代码更好维护, 让多种数据分类更加明确.修改 store.jsconst countAbout = { namespaced:true, actions:{.....}, mutations:{.....}, state:{......}, getters:{...},}const personAbout = { namespaced:true, actions:{.....}, mutations:{.....}, state:{......}, getters:{...},}const store = new Vue.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'])开启命名空间后, 组件中调用dispath// 方式一: 自己直接dispaththis.$store.dispath('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'})5.四个map方法的使用

mapState方法: 用于帮助我们映射 state 中的数据为计算属性.

computed: { //借助mapState生成计算属性, sum,school,subject (对象写法) ...mapState({sum:'sum', school:'school', subject:'subject'}) //借助mapState生成计算属性, sum,school,subject (数组写法) ...mapState(['sum','school','subject'])}

2.**mapGetters方法:**用于帮助我们映射 getters中的数据为计算属性.

computed: {//借助mapGetters生成计算属性, bigSum (对象写法)...mapGetters({bigSum:'bigSum'}),//借助mapGetters生成计算属性, bigSum (数组写法)...mapGetters(['bigSum']),}**mapActions方法:**用于帮助我们生成与 action 对话的方法, 即 : 包含 $store.dispath(xxx) 的函数methods: { //靠mapActions生成, incrementOdd, incrementWait (对象形式) ...mapActions({incrementOdd:'jiaOdd', incrementWait:'jiaWait'}), //靠mapActions生成, incrementOdd, incrementWait (数组形式) ...mapActions(['jiaOdd','jiaWait']),}mapMutations方法: 用于帮助我们生成与 mutations 对话的方法, 即: 包含 $store.commit(xxx) 的函数methods: { //靠mapMutations生成, increment, decrement (对象形式) ...mapActions({increment:'JIA', decrement:'JIAN'}), //靠mapMutations生成, JIA,JIAN (数组形式) ...mapActions(['JIA','JIAN']),}📢📢📢写在最后

看到这里有没有收获什么呢?🎀🎀🎀

🎈🎈有错误的地方可以在评论区留言,本博会虚心改正的

觉的博主写的不错的,可以给个一键三连lia~✨✨

本文链接地址:https://www.jiuchutong.com/zhishi/299157.html 转载请保留说明!

上一篇:使用element-ui中的el-upload自定义上传(elemental ui)

下一篇:前端三剑客常见面试题及其答案(前端v3)

  • word怎么插pdf图片格式(word文档怎么插pdf图)

    word怎么插pdf图片格式(word文档怎么插pdf图)

  • 微视支持自定义音乐吗(微视支持自定义播放吗)

    微视支持自定义音乐吗(微视支持自定义播放吗)

  • 第三方卖家仓库是什么意思(京东物流进入第三方卖家仓库)

    第三方卖家仓库是什么意思(京东物流进入第三方卖家仓库)

  • 无法进入windows系统(无法进入windows桌面)

    无法进入windows系统(无法进入windows桌面)

  • 路由器有什么功能和作用呀(路由器什么功能包括转发)

    路由器有什么功能和作用呀(路由器什么功能包括转发)

  • 钉钉悬浮窗看抖音算时间吗(钉钉悬浮窗看抖音会不会计入时长)

    钉钉悬浮窗看抖音算时间吗(钉钉悬浮窗看抖音会不会计入时长)

  • 小度开不开机是什么原因(小度开不开机是什么原因创维电视咋更新)

    小度开不开机是什么原因(小度开不开机是什么原因创维电视咋更新)

  • 1200w和1500w电机区别(1200w和1500w电机续航)

    1200w和1500w电机区别(1200w和1500w电机续航)

  • 幻灯片中的对象有哪些(幻灯片中的对象一般包括哪几部分)

    幻灯片中的对象有哪些(幻灯片中的对象一般包括哪几部分)

  • oppo锁屏有广告怎么去掉(oppo锁屏广告怎么彻底关掉)

    oppo锁屏有广告怎么去掉(oppo锁屏广告怎么彻底关掉)

  • 苹果还原加密数据什么意思(苹果还原加密数据怎么操作)

    苹果还原加密数据什么意思(苹果还原加密数据怎么操作)

  • iqoo支持模拟门禁卡吗(iqoo neo5模拟器)

    iqoo支持模拟门禁卡吗(iqoo neo5模拟器)

  • oppor11splus带nfc吗(oppor11splus支不支持nfc)

    oppor11splus带nfc吗(oppor11splus支不支持nfc)

  • iphone8plus机身多少寸(iphone8plus机身尺寸多少厘米)

    iphone8plus机身多少寸(iphone8plus机身尺寸多少厘米)

  • vivo备忘录怎么添加图片(vivo手机手写签名)

    vivo备忘录怎么添加图片(vivo手机手写签名)

  • 小米无线反充怎么用(小米无线反充怎么使用)

    小米无线反充怎么用(小米无线反充怎么使用)

  • 快手多少人举报能封号(快手多少人举报会封直播)

    快手多少人举报能封号(快手多少人举报会封直播)

  • 小米cc9支持无线充电吗(小米CC9支持无线充吗)

    小米cc9支持无线充电吗(小米CC9支持无线充吗)

  • 一加7pro上市时间(一加七pro啥时候上市的)

    一加7pro上市时间(一加七pro啥时候上市的)

  • ipadpro黑屏无法唤醒(ipadpro黑屏无法唤醒2020)

    ipadpro黑屏无法唤醒(ipadpro黑屏无法唤醒2020)

  • 乐视视频如何截视频(乐视怎么截图手机屏幕)

    乐视视频如何截视频(乐视怎么截图手机屏幕)

  • 2021.3最新win1021H1永久激活秘钥推荐 附激活工具+教程(window10最新20h2)

    2021.3最新win1021H1永久激活秘钥推荐 附激活工具+教程(window10最新20h2)

  • JavaWeb 购物车项目(javaweb购物车设计报告)

    JavaWeb 购物车项目(javaweb购物车设计报告)

  • vue项目安装使用element_UI(使用vue要安装什么软件)

    vue项目安装使用element_UI(使用vue要安装什么软件)

  • 增值税建筑服务税率变化时间
  • 分成收入计入什么科目
  • 加计扣除产生的滞纳金
  • 汇兑损益现金流量表列示
  • 个人名字的话费能做账吗
  • 建筑施工企业涉税问题
  • 预计所有者权益怎么计算
  • 微型企业政府补贴政策
  • 定期定额户个人所得税怎么申报
  • 企业合并股份比例
  • 股东溢价转让股份交易市场会计分录
  • 专项用途财政资金纳税调整规则
  • 代扣代缴公积金有返还吗
  • 单位房屋出租转投资性房地产怎么转?
  • 企业将活期存款转为定期时
  • 网络报销
  • 支票付款提示
  • 辅助生产交互分配后的实际费用应在进行分配
  • 企业为员工承担个人所得税
  • 税务部门如何核定税额
  • 企业出租房屋交什么税?
  • 多认证的增值税怎么处理
  • 高新技术企业所得税税率
  • 公司变卖废纸也需要缴税
  • 水资源税计入会计科目
  • 保洁属于劳务报酬吗
  • 建安企业增值税税率是多少
  • 房地产土地增值税加计扣除20%
  • 财务费用余额在借方是正数还是负数
  • 电脑网页游戏打不开了怎么办
  • 或有事项的计量结束语
  • 车船税可以抵扣个税吗
  • 企业发生的培训费能否在所得税前扣除
  • 压缩文件损坏怎么回事
  • 电力安装工程辅料有哪些
  • 公司债务转移的法律规定
  • ps命令不可用
  • 收益性支出与资本性支出的主要特点
  • macbook怎么安装macos
  • linux device drivers
  • 报废汽车残值收入的商品编码编码
  • hpptd.exe
  • 万年青的养殖方法和注意事项盆栽
  • windows7安装nodejs14
  • php 智能家居
  • 圣帕特里克的传说
  • PHP:imagecreatefromgd2()的用法_GD库图像处理函数
  • 快递收据能否作为发票
  • 建筑企业跨省经营
  • 上市公司回购股票意味着什么
  • 命令压缩文件
  • phpcms怎么用
  • 为什么开发票能抵税
  • 长期股权投资成本怎么计算
  • 货已入库进项发票未到怎么办
  • 接待客人的场合
  • 资产负债表的编制原理
  • 先弥补亏损还是先分配利润
  • 销货方和供货方的区别
  • 临时用工费开票项目
  • 出口企业有哪些税收
  • 退休人员的返聘协议模板
  • 折扣 会计处理
  • 所得税需要转本吗
  • 租赁的初始直接费用有哪些
  • 销售废旧物资是否缴税 如何账务处理
  • 企业如何建账做账
  • sqlserver 索引
  • 建立索引mysql
  • ubuntu命令行调节音量
  • win7工具栏怎么调整
  • linux如何查看磁盘信息
  • Unity AssetBundle爬坑手记
  • es6解构函数
  • js经典案例代码大全
  • cocos2dx小游戏
  • linux的gunzip命令
  • android模拟器无法运行
  • 拆迁户契税减免政策有时间限制
  • 上海42年工龄退休有没有补充养老金呢
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设