store 定义全局变量

  1. // store.js
  2. import Vue from "vue";
  3. import Vuex from "vuex";
  4. Vue.use(Vuex);
  5. export default new Vuex.Store({
  6. state: {
  7. token: "登陆凭证"
  8. },
  9. mutations: {},
  10. actions: {},
  11. modules: {}
  12. });

使用state,直接使用和通过计算属性使用

  1. // App.vue
  2. <template>
  3. <div id="app">
  4. <p>{{ $store.state.token }}</p>
  5. <p>{{ token }}</p>
  6. </div>
  7. </template>
  8. <script>
  9. export default {
  10. computed: {
  11. token() {
  12. return this.$store.state.token;
  13. }
  14. }
  15. };
  16. </script>

通过mapState辅助函数使用state数组的方式(一)

  1. // App.vue
  2. <template>
  3. <div id="app">
  4. <p>{{ $store.state.token }}</p>
  5. <p>{{ token }}</p>
  6. </div>
  7. </template>
  8. <script>
  9. import { mapState } from "vuex"; // 解构赋值引用辅助函数
  10. export default {
  11. computed: {
  12. ...mapState(["token"]) // 解构赋值使用辅助函数
  13. }
  14. };
  15. </script>

通过mapState辅助函数使用state数组的方式(二)

  1. // App.vue
  2. <template>
  3. <div id="app">
  4. <p>{{ $store.state.token }}</p>
  5. <p>{{ token }}</p>
  6. </div>
  7. </template>
  8. <script>
  9. import vuex from "vuex";
  10. let mapState = vuex.mapState;
  11. export default {
  12. computed: mapState(["token"]) //映射的计算属性的名称与 state 的子节点名称相同时,才能使用数组的方式
  13. };
  14. </script>

通过mapState辅助函数使用state对象的方式(一)字符串

  1. // App.vue
  2. <template>
  3. <div id="app">
  4. <p>{{ $store.state.token }}</p>
  5. <p>{{ token }}</p>
  6. </div>
  7. </template>
  8. <script>
  9. import { mapState } from "vuex";
  10. export default {
  11. computed: {
  12. ...mapState({
  13. token: "token"
  14. })
  15. }
  16. };
  17. </script>

通过mapState辅助函数使用state对象的方式(二)普通函数(如果要使用this获取局部状态,必须使用常规函数)

  1. \\ App.vue
  2. <template>
  3. <div id="app">
  4. <p>{{ $store.state.token }}</p>
  5. <p>{{ token }}</p>
  6. </div>
  7. </template>
  8. <script>
  9. import { mapState } from "vuex";
  10. export default {
  11. data(){
  12. return {
  13. pwd:"密码"
  14. }
  15. },
  16. computed: {
  17. ...mapState({
  18. token(state) {
  19. return this.pwd + state.token;
  20. }
  21. })
  22. }
  23. };
  24. </script>

通过mapState辅助函数使用state对象的方式(二)箭头函数

  1. \\ App.vue
  2. <template>
  3. <div id="app">
  4. <p>{{ $store.state.token }}</p>
  5. <p>{{ token }}</p>
  6. </div>
  7. </template>
  8. <script>
  9. import { mapState } from "vuex";
  10. export default {
  11. computed: {
  12. ...mapState({
  13. token: state => state.token
  14. })
  15. }
  16. };
  17. </script>