首页 > 建站教程 > 前端框架 >  vue3 setup中使用$t,Vue3国际化中 setup 声明的$t('title')在主动切换时不实时变化正文

vue3 setup中使用$t,Vue3国际化中 setup 声明的$t('title')在主动切换时不实时变化

1、在setup中不能直接使用$t,需要声明下:

<script setup>
import { useI18n } from 'vue-i18n';
const { t } = useI18n();
const title = t('title')
</script>
 
<template>
    <div> {{ title }} </div>
</template>

2、此时可以渲染出对应语言下的title,可是当切换语言无法实时变化,$t 在setup 的声明中不生效原因是本身$t() 该函数并不是一个响应式的方法,所以需要通过Vue3的方法使其变成响应式,这边使用了计算属性来监听,修改上面的代码:

<script setup>
import { computed } from 'vue';
import { useI18n } from 'vue-i18n';
const { t } = useI18n();
const title = computed(() => t('title'));
</script>
 
<template>
    <div> {{ title }} </div>
</template>