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 面向对象之重载
May 04 Javascript
jquery自定义下拉列表示例
Apr 25 Javascript
JS处理json日期格式化问题
Oct 01 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
Jul 15 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
Jan 01 Javascript
利用Js+Css实现折纸动态导航效果实例源码
Jan 25 Javascript
js模拟支付宝密码输入框
Apr 11 Javascript
第一次记录Bootstrap table学习笔记(1)
May 18 Javascript
js学习总结_基于数据类型检测的四种方式(必看)
Jul 04 Javascript
利用HBuilder打包前端开发webapp为apk的方法
Nov 13 Javascript
vue-cli webpack配置文件分析
May 20 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
Jun 04 Javascript
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
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
PHP中file_exists使用中遇到的问题小结
2016/04/05 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
2013/12/11 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
理解JavaScript原型链
2016/10/25 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
js面向对象之实现淘宝放大镜
2020/01/15 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
Python编写屏幕截图程序方法
2015/02/18 Python
python计算文本文件行数的方法
2015/07/06 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
python实现抖音点赞功能
2019/04/07 Python
python Canny边缘检测算法的实现
2020/04/24 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
经典优秀个人求职自荐信格式
2013/09/25 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
团委工作总结2015
2015/04/02 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
解析Java中的static关键字
2021/06/14 Java/Android
Java基础-封装和继承
2021/07/02 Java/Android
Go 内联优化让程序员爱不释手
2022/06/21 Golang