$u.mixin.js 790 B

1234567891011121314151617181920212223242526272829303132
  1. // $u.mixin.js
  2. import {
  3. mapState
  4. } from 'vuex'
  5. import store from "@/store"
  6. // 尝试将用户在根目录中的store/index.js的vuex的state变量,全部加载到全局变量中
  7. let $uStoreKey = [];
  8. try {
  9. $uStoreKey = store.state ? Object.keys(store.state) : [];
  10. } catch (e) {
  11. }
  12. module.exports = {
  13. mounted() {
  14. // 将vuex方法挂在到$u中
  15. // 使用方法为:如果要修改vuex的state中的user.name变量为"史诗" => this.$u.vuex('user.name', '史诗')
  16. // 如果要修改vuex的state的version变量为1.0.1 => this.$u.vuex('version', '1.0.1')
  17. this.$u.vuex = (name, value) => {
  18. this.$store.commit('$uStore', {
  19. name,
  20. value
  21. })
  22. }
  23. },
  24. computed: {
  25. // 将vuex的state中的所有变量,解构到全局混入的mixin中
  26. ...mapState($uStoreKey)
  27. }
  28. }