vue.js的状态管理vuex中store的使用详解


Posted in Javascript onNovember 08, 2019

一、状态管理(vuex)简介

vuex是专为vue.js应用程序开发的状态管理模式。它采用集中存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。vuex也集成刀vue的官方调试工具devtools extension,提供了诸如零配置的time-travel调试、状态快照导入导出等高级调试功能。

二、状态管理核心

状态管理有5个核心,分别是state、getter、mutation、action以及module。分别简单的介绍一下它们:

1、state

state为单一状态树,在state中需要定义我们所需要管理的数组、对象、字符串等等,只有在这里定义了,在vue.js的组件中才能获取你定义的这个对象的状态。

2、getter

getter有点类似vue.js的计算属性,当我们需要从store的state中派生出一些状态,那么我们就需要使用getter,getter会接收state作为第一个参数,而且getter的返回值会根据它的依赖被缓存起来,只有getter中的依赖值(state中的某个需要派生状态的值)发生改变的时候才会被重新计算。

3、mutation

更改store中state状态的唯一方法就是提交mutation,就很类似事件。每个mutation都有一个字符串类型的事件类型和一个回调函数,我们需要改变state的值就要在回调函数中改变。我们要执行这个回调函数,那么我们需要执行一个相应的调用方法:store.commit。

4、action

action可以提交mutation,在action中可以执行store.commit,而且action中可以有任何的异步操作。在页面中如果我们要嗲用这个action,则需要执行store.dispatch

5、module

module其实只是解决了当state中很复杂臃肿的时候,module可以将store分割成模块,每个模块中拥有自己的state、mutation、action和getter。

三、实例

首先建立一个vue.js项目,然后引入vuex

npm install vuex --save

而后建立一个store文件夹,建立一个store.js。在store.js中引入vue和vuex、在有需要的时候可以引入axios。

import vue from 'vue'

import vuex from 'vuex'

vue.use(vuex)

const state={

  userList:[]

}



const mutations={

  setUserList(state,data){

    state.userList=data;

    (注:如果这里的userList需要axios请求也可以把axios写在等号后面)

  }

}



const action={

  commitUserList:({commit},userList)=>commit('setUserList',userList)

}

这样一个简单的store.js就已经完成了。

在界面中我们要怎么使用这个建立的状态管理呢:

首先在script下引入store.js

<script>

import store from 'store.js的路径'

data(){

  return{

    userList:store.state.userList;//引入state中的对象

  }

},

methods:{

  useAction(){

      var item=['1':'2','a':'c'];

      store.dispatch('setUserList',item);

  }

}

</script>

以上这篇vue.js的状态管理vuex中store的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery maxlength使用说明
Sep 09 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
Jan 13 Javascript
关于js new Date() 出现NaN 的分析
Oct 23 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
浅谈Javascript中匀速运动的停止条件
Dec 19 Javascript
vue params、query传参使用详解
Sep 12 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
Dec 18 Javascript
Vuex的实战使用详解
Oct 31 Javascript
vue和H5 draggable实现拖拽并替换效果
Jul 29 Javascript
js 实现碰撞检测的示例
Oct 28 Javascript
vue+Element-ui实现登录注册表单
Nov 17 Javascript
使用vuex-persistedstate本地存储vuex
Apr 29 Vue.js
vue.js 子组件无法获取父组件store值的解决方式
Nov 08 #Javascript
VUEX采坑之路之获取不到$store的解决方法
Nov 08 #Javascript
vue路由拦截器和请求拦截器知识点总结
Nov 08 #Javascript
Vue打包后访问静态资源路径问题
Nov 08 #Javascript
在vue中使用echars实现上浮与下钻效果
Nov 08 #Javascript
js 对象使用的小技巧实例分析
Nov 08 #Javascript
JS对日期操作封装代码实例
Nov 08 #Javascript
You might like
谈谈新手如何学习PHP 默默经典版本
2009/08/04 PHP
分享PHP header函数使用教程
2013/09/05 PHP
php 把数字转换成汉字的代码
2015/07/21 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
js常用函数 不错
2006/09/08 Javascript
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
js获取Get值的方法
2016/09/29 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
送货司机岗位职责
2013/12/11 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
合同审查法律意见书
2015/06/04 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书