路由这么写
{
path: '/:lang(en)?',
component: Layout,
redirect: '/',
children: [
{
path: '',
component: () => import('@/pages/home/index.vue'),
name: 'home',
meta: {
title: 'home',
isShowNav: false,
isTabbar: true,
icon: 'wap-home-o',
},
},
然后监听route
const route = useRoute();
const { locale } = useI18n();
watch(
() => route.params.lang,
() => {
const lang = route.params.lang === 'en' ? 'en-US' : 'zh-CN';
locale.value = lang;
useAppStore().changeLanguage(lang);
},
{ immediate: true, deep: true },
);