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入门——事件切换之toggle()方法应用介绍
Feb 05 Javascript
jquery怎样实现ajax联动框(一)
Mar 08 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
Jan 23 Javascript
jquery实现全选、反选、获得所有选中的checkbox
Sep 13 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
Jul 14 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
Aug 05 Javascript
jQuery增加、删除及修改select option的方法
Aug 19 Javascript
vue滚动轴插件better-scroll使用详解
Oct 17 Javascript
原生js拖拽实现图形伸缩效果
Feb 10 Javascript
Angular+ionic实现折叠展开效果的示例代码
Jul 29 Javascript
vue实现点击出现操作弹出框的示例
Nov 05 Javascript
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
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之readdir函数用法实例
2014/11/13 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
Python全局变量用法实例分析
2016/07/19 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
2020/04/01 Python
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
毕业生个人求职的自我评价
2013/10/28 职场文书
职业生涯规划书范文
2014/03/10 职场文书
2014年学习部工作总结
2014/11/12 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技
手写Spirit防抖函数underscore和节流函数lodash
2022/03/22 Javascript
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server