vuex vue简单使用知识点总结


Posted in Javascript onAugust 29, 2019

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

配置vuex的步骤:

1、运行cnpm i vuex -S

2、导包

import Vuex from 'vuex'

3、将vuex注册到vue中

Vue.use(Vuex)

4、new Vuex.Store() 实例,得到一个 数据仓储对象

var store = new Vuex.Store({
 state: {
  // 大家可以把 state 想象成 组件中的 data ,专门用来存储数据的
  // 如果在 组件中,想要访问,store 中的数据,只能通过 this.$store.state.*** 来访问
  count: 0
 },
 mutations: {
  // 注意: 如果要操作 store 中的 state 值,只能通过 调用 mutations 提供的方法,才能操作对应的数据,不推荐直接操作 state 中的数据,因为 万一导致了数据的紊乱,不能快速定位到错误的原因,因为,每个组件都可能有操作数据的方法;
  increment(state) {
   state.count++
  },
  // 注意: 如果组件想要调用 mutations 中的方法,只能使用 this.$store.commit('方法名')
  // 这种 调用 mutations 方法的格式,和 this.$emit('父组件中方法名')
  subtract(state, obj) {
   // 注意: mutations 的 函数参数列表中,最多支持两个参数,其中,参数1: 是 state 状态; 参数2: 通过 commit 提交过来的参数;
   console.log(obj)
   state.count -= (obj.c + obj.d)
  }
 },
 getters: {
  // 注意:这里的 getters, 只负责 对外提供数据,不负责 修改数据,如果想要修改 state 中的数据,请 去找 mutations
  optCount: function (state) {
   return '当前最新的count值是:' + state.count
  }
  // 经过咱们回顾对比,发现 getters 中的方法, 和组件中的过滤器比较类似,因为 过滤器和 getters 都没有修改原数据, 都是把原数据做了一层包装,提供给了 调用者;
  // 其次, getters 也和 computed 比较像, 只要 state 中的数据发生变化了,那么,如果 getters 正好也引用了这个数据,那么 就会立即触发 getters 的重新求值;
 }
})

总结:

1. state中的数据,不能直接修改,如果想要修改,必须通过 mutations

2. 如果组件想要直接 从 state 上获取数据: 需要 this.$store.state.***

3. 如果 组件,想要修改数据,必须使用 mutations 提供的方法,需要通过 this.$store.commit('方法的名称', 唯一的一个参数)

4. 如果 store 中 state 上的数据, 在对外提供的时候,需要做一层包装,那么 ,推荐使用 getters, 如果需要使用 getters ,则用 this.$store.getters.***

以上就是本次介绍的全部知识点内容,感谢大家的学习和对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript 对Cookie 操作的封装小结
Dec 31 Javascript
jQuery数组处理方法汇总
Jun 20 Javascript
jquery入门—访问DOM对象方法
Jan 07 Javascript
js弹出窗口之弹出层的小例子
Jun 17 Javascript
asp.net+js实现金额格式化
Feb 27 Javascript
基于JS代码实现实时显示系统时间
Jun 16 Javascript
jquery.validate表单验证插件使用详解
Jun 21 jQuery
前后端如何实现登录token拦截校验详解
Sep 03 Javascript
JavaScript中七种流行的开源机器学习框架
Oct 11 Javascript
js canvas画布实现高斯模糊效果
Nov 27 Javascript
VUE实现强制渲染,强制更新
Oct 29 Javascript
vue项目支付功能代码详解
Feb 18 Vue.js
js中的this的指向问题详解
Aug 29 #Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
Aug 29 #Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 #Javascript
微信小程序实现购物车代码实例详解
Aug 29 #Javascript
vue图片加载失败时用默认图片替换的方法
Aug 29 #Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
Aug 29 #Javascript
Angular8路由守卫原理和使用方法
Aug 29 #Javascript
You might like
虫族 Zerg 魔法科技
2020/03/14 星际争霸
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
JavaScript 注册事件代码
2011/01/27 Javascript
javascript 节点排序 2
2011/01/31 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
小程序和web画三角形实现解析
2019/09/02 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
python使用递归解决全排列数字示例
2014/02/11 Python
Python编程之微信推送模板消息功能示例
2017/08/21 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
python ---lambda匿名函数介绍
2019/03/13 Python
python中对数据进行各种排序的方法
2019/07/02 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
求职者应聘的自我评价
2013/10/16 职场文书
高中体育教学反思
2014/01/29 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
紧急通知
2015/04/17 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python