VUEX 简单介绍

1.vuex是什么

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

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

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

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

2.开始使用

  • 安装
cnpm install vuex --save
  • 开始使用
// 创建store (本例在src/strore/index.js中创建store)
import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);
export default new Vuex.Store({
});

// main.js中引入store 并在创建vue实例时传入store
import store from './store/index.js';

new Vue({
  el: '#app',
  router,
  store,    // 将状态从根组件“注入”到每一个子组件中
  template: '<App/>',
  components: { App }
})

// 子组件访问store对象
this.$store  // 大部分情况我们通过辅助函数来访问(mapState/mapMutations....)store的属性或方法

3.核心概念

  • state/mapState/...mapState

    状态数据

  • getters/mapGetters/...mapGetters

    "状态数据的计算属性"

  • matation/store.commit/mapMutations

    提交mutation来改变state: store.commit
    mutation必须是同步函数

  • action/store.dispatch/mapActions

    Action 提交的是 mutation,而不是直接变更状态。
    Action 可以包含任意异步操作。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 安装 npm npm install vuex --save 在一个模块化的打包系统中,您必须显式地通过Vue.u...
    萧玄辞阅读 2,962评论 0 7
  • Vuex是什么? Vuex 是一个专为 Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件...
    萧玄辞阅读 3,133评论 0 6
  • Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应...
    白水螺丝阅读 4,682评论 7 61
  • vuex 场景重现:一个用户在注册页面注册了手机号码,跳转到登录页面也想拿到这个手机号码,你可以通过vue的组件化...
    sunny519111阅读 8,034评论 4 111
  • State 单一状态树 Vuex 使用单一状态树——是的,用一个对象就包含了全部的应用层级状态。至此它便作为一个“...
    peng凯阅读 704评论 2 0