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有关的小细节
Apr 02 Javascript
javascript StringBuilder类实现
Dec 22 Javascript
jquery里的each使用方法详解
Dec 22 Javascript
JavaScript转换农历类实现及调用方法
Jan 27 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
May 08 Javascript
jQuery之日期选择器的深入解析
Jun 19 Javascript
js验证输入是否为手机号码或电话号码示例
Dec 30 Javascript
jQuery中:input选择器用法实例
Jan 03 Javascript
cookie的secure属性详解
Apr 08 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
Feb 13 Javascript
JS实现的字符串数组去重功能小结
Jun 17 Javascript
详解JavaScript中分解数字的三种方法
Jan 05 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支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
jquery 元素相对定位代码
2010/10/15 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
python 回调函数和回调方法的实现分析
2016/03/23 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
Python之修改图片像素值的方法
2019/07/03 Python
Django实现内容缓存实例方法
2020/06/30 Python
Python利用命名空间解析XML文档
2020/08/10 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
合作意向协议书范本
2014/03/31 职场文书
大学开学计划书
2014/04/30 职场文书
科技活动周标语
2014/10/08 职场文书
社区综治工作汇报
2014/10/27 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python
Python+Appium自动化测试的实战
2021/06/30 Python
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android