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编程起步(第一课)
Jan 10 Javascript
jquery绑定事件不生效的解决方法
Feb 11 Javascript
Js Jquery创建一个弹出层可加载一个页面
May 08 Javascript
PHPExcel中的一些常用方法汇总
Jan 23 Javascript
JavaScript常用脚本汇总(二)
Mar 04 Javascript
Jquery代码实现图片轮播效果(一)
Aug 12 Javascript
JS实现IE状态栏文字缩放效果代码
Oct 24 Javascript
BootstrapTable refresh 方法使用实例简单介绍
Feb 20 Javascript
基于ajax和jsonp的原生封装(实例)
Oct 16 Javascript
使用JS实现导航切换时高亮显示的示例讲解
Aug 22 Javascript
js实现简单选项卡制作
Aug 05 Javascript
在Vue中获取自定义属性方法:data-id的实例
Sep 09 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
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
PHP整合七牛实现上传文件
2015/07/03 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
详解php中的implements 使用
2017/06/13 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
js charAt的使用示例
2014/02/18 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
2018/01/30 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
python如何操作mysql
2020/08/17 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
阿迪达斯香港官网:adidas香港
2019/11/09 全球购物
年终晚会主持词
2014/03/25 职场文书
春风行动实施方案
2014/03/28 职场文书
工作失职检讨书范文
2015/05/05 职场文书
无故旷工检讨书
2015/08/15 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python
Pytest中skip skipif跳过用例详解
2021/06/30 Python
Java并发编程必备之Future机制
2021/06/30 Java/Android