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 相关文章推荐
关于Blog顶部的滚动导航条代码
Sep 25 Javascript
更正确的asp冒泡排序
May 24 Javascript
js 自定义的联动下拉框
Feb 07 Javascript
jquery validator 插件增加日期比较方法
Feb 21 Javascript
jquery中show()、hide()和toggle()用法实例
Jan 15 Javascript
分分钟玩转Vue.js组件
Oct 25 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
Nov 22 Javascript
微信小程序页面间通信的5种方式
Mar 31 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
Dec 23 Javascript
微信小程序实现页面浮动导航
Jan 08 Javascript
Vue 中使用 typescript的方法详解
Feb 17 Javascript
javascript执行上下文、变量对象实例分析
Apr 25 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无法访问远程mysql的问题分析及解决
2013/05/16 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
JavaScript静态的动态
2006/09/18 Javascript
javascript+xml技术实现分页浏览
2008/07/27 Javascript
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
javascript:void(0)使用探讨
2013/08/27 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
2020/04/22 Javascript
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
浅谈django model postgres的json字段编码问题
2018/01/05 Python
python实现装饰器、描述符
2018/02/28 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
Python中itertools的用法详解
2020/02/07 Python
财务与信息服务专业推荐信
2013/11/28 职场文书
市场营销工作计划书
2014/09/15 职场文书
警察正风肃纪剖析材料
2014/10/16 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android