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 相关文章推荐
JQuery jsonp 使用示例代码
Aug 12 Javascript
js 获取服务器控件值的代码
Mar 05 Javascript
javascript代码运行不出来执行错误的可能情况整理
Oct 18 Javascript
三种动态加载js的jquery实例代码另附去除js方法
Apr 30 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
Sep 01 Javascript
JavaScript基本数据类型及值类型和引用类型
Aug 25 Javascript
深入理解vue.js双向绑定的实现原理
Dec 05 Javascript
常用jQuery选择器汇总
Feb 02 Javascript
JavaScript实现QQ列表展开收缩扩展功能
Oct 30 Javascript
jQuery插件jsonview展示json数据
May 26 jQuery
微信小程序防止多次点击跳转(函数节流)
Sep 19 Javascript
layui+jquery支持IE8的表格分页方法
Sep 28 jQuery
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
thinkphp实现图片上传功能分享
2014/03/04 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
微信小程序实现图片预加载组件
2017/01/18 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
微信小程序 navbar实例详解
2017/05/11 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
python中使用print输出中文的方法
2018/07/16 Python
django使用LDAP验证的方法示例
2018/12/10 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
2019/05/13 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
自我评价格式
2014/01/06 职场文书
会计的岗位职责
2014/03/15 职场文书
环保倡议书
2014/04/14 职场文书
医院院务公开实施方案
2014/05/03 职场文书
高一新生军训方案
2014/05/12 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书