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 ajaxsubmit上传图片实现代码
Nov 04 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
Jun 16 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
Oct 27 Javascript
基于jQuery实现音乐播放试听列表
Apr 14 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
Aug 31 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
Nov 24 Javascript
详解关于react-redux中的connect用法介绍及原理解析
Sep 11 Javascript
IntersectionObserver实现图片懒加载的示例
Sep 29 Javascript
微信小程序实现图片上传功能
May 28 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
Sep 25 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
Apr 10 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
Aug 27 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实现支持中文的文件下载功能示例
2017/08/30 PHP
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
2016/12/21 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
js实现日历与定时器
2017/02/22 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
Python实现识别手写数字大纲
2018/01/29 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
基于python的Paxos算法实现
2019/07/03 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
应聘护士自荐信
2013/10/21 职场文书
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
趣味运动会开幕词
2015/01/28 职场文书
党员承诺书格式范文
2015/04/28 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android
5个实用的JavaScript新特性
2022/06/16 Javascript