位置: 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)

  • 火狐浏览器兼容模式怎么设置(火狐浏览器兼容性选项在哪)

    火狐浏览器兼容模式怎么设置(火狐浏览器兼容性选项在哪)

  • 苹果xs突然不能向上划屏解锁(苹果xs突然不能快充)

    苹果xs突然不能向上划屏解锁(苹果xs突然不能快充)

  • 小米mix3怎么解除小米耳机模式(小米mix3怎么解除软件管控)

    小米mix3怎么解除小米耳机模式(小米mix3怎么解除软件管控)

  • 抖音怎么直接送1314小心心(抖音怎么直接送货上门)

    抖音怎么直接送1314小心心(抖音怎么直接送货上门)

  • vivox21什么时候上市的(vivox21什么时候出产的)

    vivox21什么时候上市的(vivox21什么时候出产的)

  • 苹果7网络不稳定怎么办(苹果网络不稳定怎么回事)

    苹果7网络不稳定怎么办(苹果网络不稳定怎么回事)

  • 华为手机怎么看手机的号码(华为手机怎么看wifi密码)

    华为手机怎么看手机的号码(华为手机怎么看wifi密码)

  • 3千瓦热水器2点5的线行吗(3千瓦热水器2点5米多少钱)

    3千瓦热水器2点5的线行吗(3千瓦热水器2点5米多少钱)

  • 如何把腾讯视频转在抖音上(如何把腾讯视频的视频保存到手机)

    如何把腾讯视频转在抖音上(如何把腾讯视频的视频保存到手机)

  • 投屏什么意思(无线投屏什么意思)

    投屏什么意思(无线投屏什么意思)

  • oppo手机怎样发朋友圈不折叠(oppo手机怎样发定位)

    oppo手机怎样发朋友圈不折叠(oppo手机怎样发定位)

  • vivo手机wifi满格却连不上网(vivo手机wifi满格却连不上网怎么办)

    vivo手机wifi满格却连不上网(vivo手机wifi满格却连不上网怎么办)

  • 显卡花屏怎么修(显卡花屏怎么修理)

    显卡花屏怎么修(显卡花屏怎么修理)

  • 一个人可以申请几个快手号(一个人可以申请几张信用卡)

    一个人可以申请几个快手号(一个人可以申请几张信用卡)

  • 魅族手机隐私怎么关(魅族手机隐私模式不见了怎么重新打开)

    魅族手机隐私怎么关(魅族手机隐私模式不见了怎么重新打开)

  • 手机没有卡可以定位吗(手机没有卡可以导航吗)

    手机没有卡可以定位吗(手机没有卡可以导航吗)

  • 抖音里未上传的咋删除(抖音未上传的视频怎么查)

    抖音里未上传的咋删除(抖音未上传的视频怎么查)

  • vivo x27防水吗(vivo X27防水吗)

    vivo x27防水吗(vivo X27防水吗)

  • 淘宝的洋淘是什么(淘宝洋淘是什么意思)

    淘宝的洋淘是什么(淘宝洋淘是什么意思)

  • 苹果xr可以控制空调吗(苹果xr控制面板在哪里打开)

    苹果xr可以控制空调吗(苹果xr控制面板在哪里打开)

  • 1660ti mq什么意思

    1660ti mq什么意思

  • ios gm版本是什么意思(苹果gm版本是什么意思)

    ios gm版本是什么意思(苹果gm版本是什么意思)

  • 5g下载一部5g电影要多久(5g下载一个g要多久)

    5g下载一部5g电影要多久(5g下载一个g要多久)

  • 拼多多怎么隐藏自己买了什么(拼多多怎么隐藏手机号和姓名)

    拼多多怎么隐藏自己买了什么(拼多多怎么隐藏手机号和姓名)

  • 字体加粗怎么弄(ps中字体加粗怎么弄)

    字体加粗怎么弄(ps中字体加粗怎么弄)

  • 手机落水后正确处理方法(手机落水后正确处理方式)

    手机落水后正确处理方法(手机落水后正确处理方式)

  • win11安装组策略编辑器ADMX模板的方法步骤(win11 组策略)

    win11安装组策略编辑器ADMX模板的方法步骤(win11 组策略)

  • React函数式组件传值(父子,兄弟,祖先等)以及父子之间方法的调用。(react函数组件useeffect)

    React函数式组件传值(父子,兄弟,祖先等)以及父子之间方法的调用。(react函数组件useeffect)

  • 目标检测--边框回归损失函数SIoU原理详解及代码实现(目标检测标注框的规则)

    目标检测--边框回归损失函数SIoU原理详解及代码实现(目标检测标注框的规则)

  • 分公司和总公司不在一个区
  • 小规模纳税人申请一般纳税人条件
  • 主营业务税金及附加大概比例
  • 税收法律关系是指国家与纳税人之间
  • 咨询费计入什么管理费用的什么科目
  • 向银行办理托收手续记什么科目
  • 固定资产装修费用计入房产税吗
  • 年金个税税率表
  • 帮别人买交强险,受益人是我,有影响吗
  • 加计扣除是什么意思举例说明农产品
  • 防伪税控开具发票明细表
  • 票据贴现利息费用计入
  • 建筑企业增值税怎么算
  • 企业理财收入交哪些税
  • 河道工程维护管理费征收
  • 人工服务费发票
  • 卷式发票属于什么税
  • 预缴水利基金如何申报?
  • 如何在国税网站下载财务报表
  • 固定资产管理的论文
  • 上月留底的进项税额本月转出做什么分录
  • 公司自有房屋出租 营业范围
  • 应收账款的账面余额公式
  • 电子商业承兑与银行承兑哪个好
  • 会计的职责概述
  • 电脑网页播放视频只有声音没有画面
  • 笔记本电脑按键掉了怎么修
  • 毛利率计算公式举例说明
  • 员工的餐费补助怎么算
  • linux 查看文件内容 转换字符编码
  • 广告费与业务宣传费范围
  • 补充协议是否缴纳印花税
  • vue2.0解决跨域问题
  • 高新技术企业加计5%
  • 行政事业单位怎么考
  • 固定资产转让税金怎么算
  • 支付投资款怎么做账
  • php删除数组中重复的元素
  • 哪种审计证据可以查出来
  • 温哥华fdu是什么大学
  • framework7教程
  • 制造企业的印花税税率
  • 工商年报认缴出资时间填错了,有什么后果
  • 预提费用计提的分录
  • 如何判断自己风寒还是风热
  • vue生命周期分别做了什么
  • 总公司如何成立子公司
  • 商业积分消费模式
  • 同业代付业务会计核算
  • 发票备注栏填写样板
  • 银行存款出现负数
  • 红字专用发票能作废吗
  • 医用耗材税率是多少
  • mysql编程一般步骤
  • 专项资金如何进行管理
  • 总公司给分公司拨款怎么做账
  • 投标费用计入哪个科目
  • 租赁公司账务科目
  • 贸易公司的会计要做哪些报表
  • 收到代收款需要开票吗
  • 应收账款的政策
  • 一个查看明日方舟的网站
  • sql数据库怎样批量添加数据
  • mysql运行代码
  • ubuntu16.04安装步骤
  • 硬盘安装xp系统安装教程
  • ubuntu14.04下apt-get install的报错以及解决方法
  • win8系统怎么设置开机密码
  • 在windows xp的应用程序中,经常有一些
  • win8 怎么样
  • win8系统电脑卡
  • windows10 禁用u盘
  • nodejs的应用场景和优缺点
  • vue动态引入模块
  • service与activity数据交互
  • Unity NGUI Tween的用法
  • 用jquery实现全选全不选反选
  • javascript 作用
  • 残疾人个人所得税怎么申报退税
  • 会计开票要填哪些信息
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设