ElementUI之vuex

本文介绍了Vuex的作用、安装配置步骤,重点讲解了store、state、mutations、actions等核心概念,以及Vuex如何通过响应式设计管理共享状态。适合初学者理解Vuex在大型单页应用中的应用和架构。
摘要由CSDN通过智能技术生成

一、什么是Vuex

        Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

二、为什么要使用Vuex

        Vuex 可以帮助我们管理共享状态,并附带了更多的概念和框架。这需要对短期和长期效益进行权衡。如果不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。确实是如此——如果你的应用够简单,最好不要使用 Vuex。一个简单的 store 模式就足够你的所需了。但是,如果你需要构建一个中大型单页应用,你很可能会考虑如何更好地在组件外部管理状态,Vuex 将会成为自然而然的选择。

三、安装与配置

3.1、安装

npm install vuex -S  默认下载最新版

npm i --save vuex@3

3.2、创建store模块

3.2.1、在src目录下创建store目录,并在目录下分别创建:index.js、actions.js、mutations.js、state.js、getters.js等文件。

3.2.2、在state.js/actions.js/mutation.js/getter.js等文件中添加如下内容:

export default {
    
}

3.3、创建store实例

3.3.1

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

import state from '@/store/state'
import actions from '@/store/actions'
import getters from '@/store/getters'
import mutations from '@/store/mutations'

//创建Vuex的store实例
const store=new Vuex.Store({
    state,
    getters,
    actions,
    mutations
})

export default store

3.3.2、注册store

import Vue from 'vue'
import App from './App'

//导入store模块到main.js
import store from './store'

...

Vue.use(VueAxios,axios)
Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  store,    //在Vue实例中使用store模块
  components: { App },
  template: '<App/>'
})

四、核心概念

Vuex的核心概念:store、state、getters、mutations、actions。

每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。Vuex 和单纯的全局对象有以下两点不同:

  1. Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。

  2. 你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。

    属性解释
    State共享状态(即变量) 提供唯一的公共数据源,所有共享的数据都要统一放到 Store 的 state 中进行存储。
    Mutation更改vuex的store中state的唯一方法,只有通过提交mutation才能修改状态(变量值)
    Action类似mutation,修改store中的状态。但是刚才说过只有通过提交mutation才能修改状态,所以Action也是通过提交mutation修改store中的状态 ,与Mutataion不同的是Action支持异步操作
    Module模块,在大型项目中为了方便状态的管理和协作开发将store拆分为多个子模块(modules),每个子模块拥有完整的state、mutation、action、getter。(这里先不介绍)
    Getter基于state的派生状态,可理解为组件中的计算属性
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值