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

 更新时间:2019年11月08日 15:34:46   作者:zeternityyt  
今天小编就为大家分享一篇vue.js的状态管理vuex中store的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

一、状态管理(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的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解vue2.0 transition 多个元素嵌套使用过渡

    详解vue2.0 transition 多个元素嵌套使用过渡

    这篇文章主要介绍了详解vue2.0 transition 多个元素嵌套使用过渡,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 一文带你搞懂Vue3如何使用讯飞大模型

    一文带你搞懂Vue3如何使用讯飞大模型

    这篇文章主要为大家详细介绍了Vue3使用讯飞大模型的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-12-12
  • Vuex如何获取getter对象中的值(包括module中的getter)

    Vuex如何获取getter对象中的值(包括module中的getter)

    这篇文章主要介绍了Vuex如何获取getter对象中的值(包括module中的getter),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 构建Vue大型应用的10个最佳实践(小结)

    构建Vue大型应用的10个最佳实践(小结)

    这篇文章主要介绍了构建Vue大型应用的10个最佳实践(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • vue子父组件通信的实现代码

    vue子父组件通信的实现代码

    这篇文章主要介绍了vue子父组件通信的实现代码,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-07-07
  • el-select下拉选择缓存的实现

    el-select下拉选择缓存的实现

    本文主要介绍了在使用el-select实现下拉选择缓存时遇到的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Vue项目中token验证登录(前端部分)

    Vue项目中token验证登录(前端部分)

    这篇文章主要为大家详细介绍了Vue项目中token验证登录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Vue.js实现模拟微信朋友圈开发demo

    Vue.js实现模拟微信朋友圈开发demo

    本篇文章主要介绍了Vue.js实现模拟微信朋友圈开发demo,实现展示朋友圈,评论,点赞等功能,有兴趣的可以了解一下。
    2017-04-04
  • Vue 封装防刷新考试倒计时组件的实现

    Vue 封装防刷新考试倒计时组件的实现

    这篇文章主要介绍了Vue 封装防刷新考试倒计时组件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • vue--elementui中如何修改el-input样式

    vue--elementui中如何修改el-input样式

    在使用 element ui 组件过程中,我最近碰到了新的问题,vue--elementui中如何修改el-input样式呢,今天小编通过示例代码给大家详细讲解,需要的朋友参考下吧
    2023-05-05

最新评论