You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VueJS:为何子路由/组件仅页面刷新后才渲染?求解决方法

解决方案

1. 修正路由跳转目标

你当前点击的链接可能指向了父路由的名称app.settings.summary,这会导致Vue Router仅加载父组件,未触发默认子路由的渲染。请将跳转目标改为子路由的名称app.settings,或直接使用路径/settings:

<!-- 使用子路由名称跳转 -->
<router-link :to="{ name: 'app.settings' }">Settings</router-link>

<!-- 或直接使用路径跳转 -->
<router-link to="/settings">Settings</router-link>

2. 验证路由懒加载配置

若跳转目标修正后仍无效,可能是懒加载的webpack chunk处理异常。可临时将路由改为同步导入,排查是否为懒加载问题:

// 替换routes.js中的懒加载代码
import SettingsSummaryPage from '@/views/settings/SettingsSummaryPage.vue'
import SettingsPage from '@/views/settings/SettingsPage.vue'

{
    path: '/settings',
    name: 'app.settings.summary',
    component: SettingsSummaryPage,
    meta: { "requiresAuth": true },
    children: [
        {
            path: '',
            name: 'app.settings',
            component: SettingsPage,
            meta: { "requiresAuth": true },
        },
    ],
},

如果同步导入后子组件正常渲染,说明需要检查webpack的chunk命名或懒加载配置,确保两个组件的chunkName(app.settings.summary和app.settings)无冲突。

3. 确认父组件路由视图无异常

检查SettingsSummaryPage.vue(你描述中写的SettingsSummary.vue应为笔误)中的<router-view>是否正确渲染,确保没有CSS样式遮挡或组件嵌套错误。你的当前模板结构是正确的,只需确认文件名称与路由导入一致即可。


内容的提问来源于stack exchange,提问作者Damon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 10:07:25