在插件VUE中使用Mixin



我有一个要求,在应用程序启动中,我们必须进行Axios调用并获得一些值。.该值应适用于所有应用程序...它们是一些元数据服务器端,应在应用初始化期间仅获取一次...我已经通过定义插件内的混合蛋白并希望在组件内获取值。在这种情况下,我应该在哪里进行Axios调用?在混音或插件内?

    import Vue from 'vue'
import Axios from 'axios'
const StudentCoinPlugin = {
  install (Vue, options) {
    Axios
      .get('https://api.coindesk.com/v1/bpi/currentprice.json')
      .then(response => {
        Vue.mixin({
          mounted () {
            console.log('Mounted!Plugin----------')
          },
          data: function () {
            return {
              globalReadOnlyProperty: this.response.data.time.updated
            }
          }
        })
      }
      )
  }
}

是正确的做法吗?或者,当应用程序启动时,读取某些值并在全局范围中获取它的最佳方法是什么?

在我看来,将其放在安装的钩子内。虽然它将按照您的代码方式工作,但在当时的块中包装Mixin的安装有点尴尬。

import axios from 'axios';
async function fetchData(params) {
  // do axios call here 
}
const StudentCoinPlugin = {
  install (Vue, options) {
    Vue.mixin({
      async mounted () {
        console.log('Mounted!Plugin----------');
        await fetchData();
      },
      data: function () {
        return {
          globalReadOnlyProperty: this.response.data.time.updated
        }
      }
    })
  }
}

最新更新