Как бы вы написали это с помощью API композиции?

  computed: {
    userName() {
      // (4) Display authenticated user name
      const user = this.$gapi.getUserData()

      return user.accessToken
    },
  },

Это код, который я пытаюсь преобразовать в API композиции Vue3. По сути, я понимаю, что мне нужно импортировать вычисленные данные и так далее, но часть, которую я не могу понять, - это как написать this.$gapi.getUserData() в функции настройки.

gapi - это импортированный пакет, который я использую ..


person ArvidA    schedule 20.06.2021    source источник


Ответы (1)


Глобальные свойства настраиваются в app.config.globalProperties в Vue 3 и в экземпляре приложения можно получить через getCurrentInstance().appContext.

Эквивалентный Composition API будет примерно таким:

import { getCurrentInstance, computed } from 'vue'

export default {
  setup() {
    return {
      userName: computed(() => {
        const user = getCurrentInstance().appContext.config.globalProperties.$gapi.getUserData()
        return user.accessToken
      })
    }
  }
}
person tony19    schedule 20.06.2021
comment
Сделано, спасибо! - person ArvidA; 21.06.2021