首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Vue I18n多语言

Vue I18n多语言
EN

Stack Overflow用户
提问于 2022-04-05 10:08:41
回答 1查看 294关注 0票数 0

我正在使用vue js进行多语言支持,一切都很好,但是当我更改语言时,数据menuItem名称中的数据不会改变。

Vuei18n

代码语言:javascript
代码运行次数:0
运行
复制
<template v-slot:MenuItem>
    <MenuItems v-for="(Item,Index) in menuItem"
               :key="Index"
               :items="Item"
               :depth="Index"
    >
        <router-link :to="Item.path">{{Item.name}}</router-link>
    </MenuItems>
</template>

export default {
    name: "Nav",
    data() {
        return {
            menuItem: [
                {
                    name: this.$t('navbar.home'),
                    path: '',
                },
                {
                    name: this.$t('navbar.gallery'),
                    path: 'gallery',
                },
                {
                    name: this.$t('navbar.contact'),
                    path: 'contact',
                },
            ],
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-05 11:40:57

数据()只在创建组件时调用一次,而且它不打算是反应性的。(因此,基本上在创建组件时,它将当前的转换作为初始值)

要使属性对$t()进行反应性,您应该使用计算的var来代替:

代码语言:javascript
代码运行次数:0
运行
复制
  export default {
    name: "Nav",
    data() {
      // exclude from here
      return {};
    },
    computed: {
      menuItem() {
        return [
          {
            name: this.$t("navbar.home"),
            path: "",
          },
          {
            name: this.$t("navbar.gallery"),
            path: "gallery",
          },
          {
            name: this.$t("navbar.contact"),
            path: "contact",
          },
        ];
      },
    },
  };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71749895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档