vuex里mapState,mapGetters使用详解- 云+社区- 腾讯云

文章推薦指數: 80 %
投票人數:10人

一、基本用法. 1. 初始化并创建一个项目 vue init webpack-simple vuex-demo cd vuex-demo npm install. 2. 安装vuex npm install vuex -S. 腾讯云备案控制台云+社区专栏视频精选问答沙龙云+竞赛团队主页开发者手册腾讯云TI平台TVP实验室搜索搜索关闭创作写文章发视频提问登录注册展开腾讯云·社区登录首页专栏视频精选问答沙龙云+竞赛团队主页开发者手册腾讯云TI平台TVP返回腾讯云官网庞小明398篇文章vuex里mapState,mapGetters使用详解转到我的清单专栏首页pangguomingvuex里mapState,mapGetters使用详解20分享分享文章到朋友圈分享文章到QQ分享文章到微博复制文章链接到剪贴板海报分享海报分享vuex里mapState,mapGetters使用详解2019-07-272019-07-2718:22:11阅读5.5K0一、基本用法1.初始化并创建一个项目vueinitwebpack-simplevuex-demo cdvuex-demo npminstall2.安装vuexnpminstallvuex-S3.在src目录下创建store.js文件,并在main.js文件中导入并配置store.js中写入importVuefrom'vue' //引入vuex并use importVuexfrom'vuex' Vue.use(Vuex)main.js文件importVuefrom'vue' importAppfrom'./App.vue' importstorefrom'./assets/store'//导入store对象 newVue({ //配置store选项,指定为store对象,会自动将store对象注入到所有子组件中,在子组件中通过this.$store访问该store对象 store, el:'#app', render:h=>h(App) })4.编辑store.js文件在应用vuex之前,我们还是需要看懂这个流程图,其实很简单。

vuex①VueComponents是我们的vue组件,组件会触发(dispatch)一些事件或动作,也就是图中的Actions; ②我们在组件中发出的动作,肯定是想获取或者改变数据的,但是在vuex中,数据是集中管理的,我们不能直接去更改数据,所以会把这个动作提交(Commit)到Mutations中; ③然后Mutations就去改变(Mutate)State中的数据; ④当State中的数据被改变之后,就会重新渲染(Render)到VueComponents中去,组件展示更新后的数据,完成一个流程。

Vuex的核心是Store(仓库),相当于是一个容器,一个Store实例中包含以下属性的方法:state定义属性(状态、数据)store.js中写入//定义属性(数据) varstate={ count:6 } //创建store对象 conststore=newVuex.Store({ state }) //导出store对象 exportdefaultstore;方式1、在app.vue中就能通过this.$store访问该store对象,获取该count。

方式2、vuex提供的mapGetters和mapActions来访问mapGetters用来获取属性(数据)①在app.vue中引入mapGettersimport{mapGetters}from'vuex'②在app.vue文件的计算属性中调用mapGetters辅助方法,并传入一个数组,在数组中指定要获取的属性count③在store.js中定义getters方法并导出getters用来获取属性importVuefrom'vue' importVuexfrom'vuex' Vue.use(Vuex) //定义属性(数据) varstate={ count:6 } //定义getters vargetters={ //需要传个形参,用来获取state属性 count(state){ returnstate.count } } //创建store对象 conststore=newVuex.Store({ state, getters }) //导出store对象 exportdefaultstore;这样页面上就会显示传过来的数据了!接下来我们来通过动作改变获取到的数据④在store.js中定义actions和mutations方法并导出actions定义方法(动作),可以使异步的发送请求。

commit提交变化,修改数据的唯一方式就是显示的提交mutationsmutations定义变化,处理状态(数据)的改变importVuefrom'vue' importVuexfrom'vuex' Vue.use(Vuex) //定义属性(数据) varstate={ count:6 } //定义getters vargetters={ count(state){ returnstate.count } } //定义actions,要执行的动作,如流程的判断、异步请求 constactions={ //({commit,state})这种写法是es6中的对象解构 increment({commit,state}){ //提交一个名为increment的变化,名字可自定义,可以认为是类型名,与下方mutations中的increment对应 //commit提交变化,修改数据的唯一方式就是显式的提交mutations commit('increment') } } //定义mutations,处理状态(数据)的改变 constmutations={ //与上方commit中的‘increment'相对应 increment(state){ state.count++; } } //创建store对象 conststore=newVuex.Store({ state, getters, actions, mutations }) //导出store对象 exportdefaultstore;⑤在app.vue中引入mapActions,并调用mapActions用来获取方法(动作)import{mapGetters,mapActions}from'vuex'调用mapActions辅助方法,并传入一个数组,在数组中指定要获取的方法increment 这样就能通过button来改变获取到的count了。

看起来确实是挺绕的,需要在理解了原理的情况下,再细细琢磨,加深理解。

/*getter是state的get方法,没有get页面就获取不到数据 获取页面: import{mapGetters,mapActions}from'vuex'

{{count}}

computed:mapGetters([ 'count' ]), store.js: varstate={ count:6 }, vargetters={ count(state){ returnstate.count } } 改变数据页面: methods:mapActions([ //该increment来自store.js中导出的actions和mutations中的increment 'increment', ]) 先发给action: constactions={ //({commit,state})这种写法是es6中的对象解构 increment({commit,state}){ //提交一个名为increment的变化,名字可自定义,可以认为是类型名,与下方mutations中的increment对应 //commit提交变化,修改数据的唯一方式就是显式的提交mutations commit('increment') } } 再发给mutations: constmutations={ //与上方commit中的‘increment'相对应 increment(state){ state.count++; } } */本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

展开阅读全文JavaScriptVue.js编程算法举报点赞2分享登录后参与评论Vuex如何映射?(详解指南)Vuex是把双刃剑。

正确使用Vue可以让你的工作更容易些。

同样,如果不小心,也会造成代码的混乱。

誉新源科技Vuex中的modules你知道多少?为什么会出现VueX的模块呢?当你的项目中代码变多的时候,很难区分维护。

那么这时候Vuex的模块功能就这么体现出来了。

Vam的金豆之路Vuex映射完全指南Vuex是一把双刃剑。

如果使用得当,Vue可以使你的工作更加轻松。

如果不小心,也会使让的代码混乱不堪。

疯狂的技术宅10分钟学会vuex通过上面两个步骤,每个组件中都有了$store属性,就是我们创建的容器。

里面有commit,dispatch,state,getters,actions,mut...QiangVuex初探——求和小案例在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通...henu_Newxc03真正掌握vuex的使用方法(四)是不是很长?是不是看着它很蓝瘦?正常的第一反应就是将其写入到计算属性内,方便调用!所以咱们可以将computed调整如下:用户1272076vuex的基础知识点我不是费圆「vue基础」写给Vuex初学者的使用指南大家好,在前面的几篇文章里我们一起学习了Vue相关的基础知识,想复习基础的同学可以点击文末链接进行回顾。

今天我们将学习Vue的StateManageme...前端达人(Vue全家桶)Vue-vuexvuex是一个专门为vue.js设计的集中式状态管理架构。

状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态。

楠楠vuex(用了vue就上了一条不归路的贼船)“杀鸡不用宰牛刀”。

对于简单的项目,根本用不着Vuex这把“宰牛刀”。

那简单的项目用什么呢?用Vue.js官方提供的事件总线就可以了。

landv36、vuex初探(四)(1)首先我们需要明确一点的就是,像mapState这些都是辅助函数,只不过是一种简写方法,让你少按几次键而已。

以mapState辅助函数为例:Ewallvuex-辅助函数学习xing.org1^Vuex的简单入门在src目录下新建个store文件夹,里面新建index.js 在index.js文件夹中创建Vuex实例明知山vuex下面的代码当执行:this.add(10)时,由于...mapMutations在...mapActions的后面,因此,会执行mutation,而不会执行ac...hssVuex精简文档Vuex通过store选项,提供了一种机制将状态从根组件“注入”到每一个子组件中(需调用Vue.use(Vuex)):神葳了解Vuex状态管理模式的理解强化指南Vuex是什么呢?它是Vue的状态管理模式,在使用vue的时候,需要在vue中各个组件之间传递值是很痛苦的,在vue中我们可以使用vuex来保存我们需要管理的状...达达前端了解Vuex状态管理模式的理解强化指南Vuex是什么呢?它是Vue的状态管理模式,在使用vue的时候,需要在vue中各个组件之间传递值是很痛苦的,在vue中我们可以使用vuex来保存我们需要管理的状...桃翁Vue笔记:使用vuex管理应用状态如果你在使用 vue.js ,那么我想你可能会对vue组件之间的通信感到崩溃。

朝雨忆轻尘前端成神之路-VuexVuex是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间的数据共享海仔更多文章庞小明关注专栏文章398阅读量577.5K获赞2.1K作者排名271腾讯云原生专题云原生技术干货,业务实践落地。

一键订阅《云荐大咖》专栏获取官方推荐精品内容,学技术不迷路!立即查看腾讯云自媒体分享计划入驻云加社区,共享百万资源包。

立即入驻广告关闭社区专栏文章阅读清单互动问答技术沙龙技术快讯团队主页开发者手册腾讯云TI平台活动原创分享计划自媒体分享计划邀请作者入驻自荐上首页在线直播生态合作计划资源技术周刊社区标签开发者实验室关于视频介绍社区规范免责声明联系我们友情链接归档问题归档专栏文章归档快讯文章归档关键词归档开发者手册归档开发者手册Section归档云+社区扫码关注云+社区领取腾讯云代金券热门产品域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL数据库SSL证书语音识别更多推荐数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移Copyright©2013-2022TencentCloud.AllRightsReserved.腾讯云版权所有京公网安备11010802017518粤B2-20090059-1扫描二维码扫码关注云+社区领取腾讯云代金券


請為這篇文章評分?