используя mixins внутри плагина VUE - PullRequest
0 голосов
/ 07 июля 2019

У меня есть требование, при котором при запуске приложения мы должны сделать вызов 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
            }
          }
        })
      }
      )
  }
}

Это правильно? Или как лучше всего прочитать некоторые значения и получить их в глобальной области видимости при запуске приложения?

1 Ответ

1 голос
/ 07 июля 2019

На мой взгляд, положите его внутрь навесного крючка.Хотя он будет работать так же, как и в вашем коде, было бы неудобно оборачивать установку mixin внутри блока then.

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
        }
      }
    })
  }
}
...