首页 > 其他 > 详细

Vuex的学习

时间:2019-09-25 18:09:03      阅读:81      评论:0      收藏:0      [点我收藏+]

概念:

vuex是Vue配套的公共数据管理工具,它可以把一些共享的数据,保存到vuex中,方便整个程序中的任何组件直接获取或修改我们的公共数据。

Vuex是为了保存 组件之间共享数据而诞生的,如果组件之间有要共享的数据,可以直接挂载到Vuex中,而不必要通过 父子组件之间传值了,如果,组件的数据不需要共享,此时,这些不需要共享的私有数据,没有必要放到vuex中:

只有共享的数据,才有权力放到vuex中,

组件内部私有的数据,只要放到组件的data中即可。

props 和data 和 vuex的区别:

props存放父组件传递过来的数据;

data存放私有的数据;

vuex存放共享的数据;

综上得出:Vuex是一个全局的共享数据存储区域,就相当于一个数据仓库。

配置vuex的步骤

1.安装:

技术分享图片

 

 或者是:cnpm i vuex  -S

2.导入包和注册vuex技术分享图片

 

 3.new Vuex.store()实例,得到一个数据仓储对象。

 var store=new Vuex.Store({

   state:{   //---可以把state想象成组件中的data,专门用来存储数据的

         count:0,   //如果在组件中,想要访问,store中的数据,只能通过 this.$store.state.名称  来访问

  },

   mutations:{}

 })

技术分享图片

 

 组件中想要访问 state中的count数据:只能通过 this.$store.state.名称  来访问  ,如下:

技术分享图片

 

 想要点击+1:(自增)

技术分享图片

 

 那么这里的 ‘increment‘是怎么来的呢?

原来:在main.js中:

技术分享图片

 

 注意:这里的第一个参数是固定死了的,是state

注意:如果组件想要调用 mutations中的方法,只能通过使用  this.$state.commit(‘方法名‘)。所以才有 add 方法中的写法。

这种 调用mutations 方法的格式,和 this.$emit(父组件中的方法名)  相似。

同理也可通过这样的方式实现自减。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

注意:mutations的函数参数列表中,最多支持两个参数,其中参数1:是state状态;参数2:通过commit提交过来的参数。

如果想多传参数,可以用传递对象的方式:

技术分享图片

 

 那么在 mutations中函数接收时,就用对象接收

技术分享图片

 

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------

技术分享图片

 

 技术分享图片

 


// 总结:
// 1. state中的数据,不能直接修改,如果想要修改,必须通过 mutations
// 2. 如果组件想要直接 从 state 上获取数据: 需要 this.$store.state.***
// 3. 如果 组件,想要修改数据,必须使用 mutations 提供的方法,
// 需要通过 this.$store.commit(‘方法的名称‘, 唯一的一个参数)
// 4. 如果 store 中 state 上的数据, 在对外提供的时候,需要做一层包装,
// 那么 ,推荐使用 getters, 如果需要使用 getters ,则用 this.$store.getters.***

 

Vuex的学习

原文:https://www.cnblogs.com/hou-yuan-zhen/p/11585825.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!