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 相关文章推荐
动态加载js文件 document.createElement
Oct 14 Javascript
jquery获取tr中控件值并操作tr实现思路
Mar 27 Javascript
JavaScript获取onclick、onchange等事件值的代码
Jul 22 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
Nov 14 Javascript
window.location的重写及判断location是否被重写
Sep 04 Javascript
jQuery中unwrap()方法用法实例
Jan 16 Javascript
jQuery实现DIV层收缩展开的方法
Feb 27 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
Jan 27 Javascript
详细总结Javascript中的焦点管理
Sep 17 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
Apr 05 Javascript
React组件内事件传参实现tab切换的示例代码
Jul 04 Javascript
vue.js中使用echarts实现数据动态刷新功能
Apr 16 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中使用Oracle数据库(4)
2006/10/09 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
一个php导出oracle库的php代码
2009/04/20 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
Python中字符串对齐方法介绍
2015/05/21 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
机器学习实战之knn算法pandas
2019/06/22 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
python实现简单猜单词游戏
2020/12/24 Python
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
应届生服装设计自我评价
2013/09/20 职场文书
高职助产应届生自荐信
2013/09/24 职场文书
商场消防管理制度
2014/01/12 职场文书
数学教研活动总结
2014/07/02 职场文书
服务承诺书
2015/01/19 职场文书
保护校园环境倡议书
2015/04/28 职场文书
法人代表证明书范本
2015/06/18 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android