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 判断页面元素是否存在的代码
Aug 14 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
Jul 23 Javascript
Javascript Request获取请求参数如何实现
Nov 28 Javascript
JS随机调用指定函数的方法
Jul 01 Javascript
jQuery表格行上移下移和置顶的实现方法
Oct 08 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
Dec 03 Javascript
js实现打地鼠小游戏
Feb 13 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
Feb 24 Javascript
利用Vue构造器创建Form组件的通用解决方法
Dec 03 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
Sep 24 Javascript
vue从零实现一个消息通知组件的方法详解
Mar 16 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
Nov 07 Javascript
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
mysql_escape_string()函数用法分析
2016/04/25 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
JavaScript 格式字符串的应用
2010/03/29 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
Vue 中的compile操作方法
2018/02/26 Javascript
vuex的module模块用法示例
2018/11/12 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
python复制与引用用法分析
2015/04/08 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
由面试题加深对Django的认识理解
2019/07/19 Python
python实现单链表的方法示例
2019/09/03 Python
详解python中各种文件打开模式
2020/01/19 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
使用python无账号无限制获取企查查信息的实例代码
2020/04/17 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
中专自我鉴定范文
2013/10/16 职场文书
应届大学生的推荐信
2013/11/20 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
音乐剧猫观后感
2015/06/04 职场文书
亮剑观后感500字
2015/06/05 职场文书
python 如何用terminal输入参数
2021/05/25 Python