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>