store 定义全局变量
// store.js import Vue from "vue";import Vuex from "vuex";Vue.use(Vuex);export default new Vuex.Store({ state: { token: "登陆凭证" }, mutations: {}, actions: {}, modules: {}});
使用state,直接使用和通过计算属性使用
// App.vue<template> <div id="app"> <p>{{ $store.state.token }}</p><p>{{ token }}</p></div></template><script> export default { computed: { token() { return this.$store.state.token; } } };</script>
通过mapState辅助函数使用state数组的方式(一)
// App.vue <template> <div id="app"> <p>{{ $store.state.token }}</p> <p>{{ token }}</p> </div> </template> <script> import { mapState } from "vuex"; // 解构赋值引用辅助函数 export default { computed: { ...mapState(["token"]) // 解构赋值使用辅助函数 } }; </script>
通过mapState辅助函数使用state数组的方式(二)
// App.vue<template> <div id="app"> <p>{{ $store.state.token }}</p><p>{{ token }}</p></div></template><script> import vuex from "vuex";let mapState = vuex.mapState;export default { computed: mapState(["token"]) //映射的计算属性的名称与 state 的子节点名称相同时,才能使用数组的方式};</script>
通过mapState辅助函数使用state对象的方式(一)字符串
// App.vue <template> <div id="app"> <p>{{ $store.state.token }}</p> <p>{{ token }}</p> </div> </template> <script> import { mapState } from "vuex"; export default { computed: { ...mapState({ token: "token" }) } }; </script>
通过mapState辅助函数使用state对象的方式(二)普通函数(如果要使用this获取局部状态,必须使用常规函数)
\\ App.vue <template> <div id="app"> <p>{{ $store.state.token }}</p> <p>{{ token }}</p> </div> </template> <script> import { mapState } from "vuex"; export default { data(){ return { pwd:"密码" } }, computed: { ...mapState({ token(state) { return this.pwd + state.token; } }) } }; </script>
通过mapState辅助函数使用state对象的方式(二)箭头函数
\\ App.vue <template> <div id="app"> <p>{{ $store.state.token }}</p> <p>{{ token }}</p> </div> </template> <script> import { mapState } from "vuex"; export default { computed: { ...mapState({ token: state => state.token }) } }; </script>