vuex其实可以看成一个公共的数据仓库,从作用来说大致上可以看成是我们的cookie或者localStorage,下面我们来看看怎么使用吧
1.安装
vuex不是vue内置的所以需要额外安装
npm i vuex --save
2.设置仓库
在src下面新建一个文件夹,这里我新建一个store/index.js,内容大致为:
import Vue from ‘vue‘ import Vuex from ‘vuex‘ Vue.use(Vuex) const state = { count: 0 } const mutations = { add (state, n) { state.count += n }, reduce (state, n) { state.count -= n } } export default new Vuex.Store({ state, mutations })
3.引入使用
vuex实例可以被引入到Vue实例和Vue组件中,引入后可以在this.$store中使用vuex
<template> <div> <!-- 通过$store.state获取仓库数据 --> {{$store.state.count}}<br> <!-- 通过computed mapState来简化数据写法 --> {{count}}<br> <!-- 通过$store.commit来触发仓库方法 --> <button @click="$store.commit(‘add‘, 10)">+</button> <!-- 通过methods mapMutation 来简化调用仓库方法 --> <button @click="reduce(2)">-</button> </div> </template> <script> import store from ‘@/store‘ import { mapState, mapMutations } from ‘vuex‘ export default { data () { return {} }, // 通过mapMutation来简化vuex数据获取 methods: { ...mapMutations([‘add‘, ‘reduce‘]) }, store, // 通过mapState来简化vuex数据获取 computed: { ...mapState([‘count‘]) } // computed: mapState({ // count: state => state.count // }) // computed: { // count () { // return this.$store.state.count // } // } } </script>