Vuex的第一课

Vuex的第一课

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

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

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

#最简单的 Store

1) Vuex 在组件中的应用

 

<template>

<div class="home">

<p>{{ this.$store.state.count }}</p>

 

<button @click="addFun">开心学习</button>

 

<HelloWorld msg="Welcome to Your Vue.js App" />

</div>

</template>

 

<script>

// @ is an alias to /src

import HelloWorld from "@/components/HelloWorld.vue";

 

export default {

name: "Home",

components: {

HelloWorld

},

methods: {

addFun() {

this.$store.commit("increment");

}

}

};

</script>

2) /store/index.js

import Vue from 'vue'

import Vuex from 'vuex'

 

Vue.use(Vuex)

 

export default new Vuex.Store({

state: {

count : 0

},

mutations: {

increment (state){

state.count ++

}

},

actions: {

 

},

modules: {

}

})