@Jussss92

Как сделать глобальный метод во Vue3 composition Api?

Всем привет.
Я хочу сделать фильтр с библиотекой i18n для перевода в composition, но т.к. там фильтров уже нет, то вынести в глобальный метод.
const { t } = useI18n()
Саму обработку через функцию t в main.js я не могу т.к. метод составной и он просит добавить его в setup.
Думаю добавить его из App.vue , но не могу обратиться к Vue. (this === undefined)

Так вот вопрос, как правильно задать этот глобальный метод?
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
modelair
@modelair
unsocial
ключ - getCurrentInstance

import { getCurrentInstance } from 'vue'

export function useI18n() {
    const instance = getCurrentInstance()
    if (!instance) return (localeString: string) => localeString // вернем строку обратно
    return instance.appContext.config.globalProperties.$t
}


<script setup lang="ts">
import useI18n from '@/utils/useI18n'

const t = useI18n()
</script>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы