大山楂 2021-12-09 22:49 采纳率: 100%
浏览 111
已结题

vue router 嵌套子路由点击没有反应,如何解决?

vue router 嵌套子路由点击没有反应

Main.vue:

<template>
  <el-container style="height: 100vh;">
    <el-aside width="200px" style="background-color: rgb(238, 241, 246)">
      <el-menu router :default-openeds="['1', '3']">
        <el-sub-menu index="1">
          <template #title>
            <el-icon><message /></el-icon>管理 One
          </template>
          <el-menu-item-group>
            <template #title>分类 1</template>
            <el-menu-item index="/categories/create">新建分类1</el-menu-item>
          </el-menu-item-group>
        </el-sub-menu>
      </el-menu>
    </el-aside>

    <el-container>
      <el-header style="text-align: right; font-size: 12px">
        <el-dropdown>
          <el-icon style="margin-right: 15px"><setting /></el-icon>
          <template #dropdown>
            <el-dropdown-menu>
              <el-dropdown-item>View</el-dropdown-item>
              <el-dropdown-item>Add</el-dropdown-item>
              <el-dropdown-item>Delete</el-dropdown-item>
            </el-dropdown-menu>
          </template>
        </el-dropdown>
        <span>Tom</span>
      </el-header>

      <el-main>
        <router-view name="tbl"></router-view>
      </el-main>
    </el-container>
  </el-container>
</template>

<script>
import { defineComponent,  } from 'vue'
import { Message, Setting } from '@element-plus/icons'

export default defineComponent({
  components: {
    Message,
    Setting,
  },
  setup() {
 


    return {
    }
  },
})
</script>

<style>
.el-header {
  background-color: #b3c0d1;
  color: var(--el-text-color-primary);
  line-height: 60px;
}

.el-aside {
  color: var(--el-text-color-primary);
}
</style>


路由index.js


import {createRouter, createWebHistory} from 'vue-router'
import Main from '../views/Main.vue'
import CategoryEdit from '../views/CategoryEdit.vue'

const history = createWebHistory();

const router =createRouter({
    history,
    routes:[
        {
            path:'/',
            name:'main', 
            component:Main,
            children:[
                { 
                    path:'/categories/create',
                    components:{
                        tbl:CategoryEdit 
                    }
                },
                
                
            ]
        },
       
    ]
})

export default router;

CategoryEdit.vue:

<template>
    <div class="about">
        <h1>1111111111111111</h1>
    </div>
</template>

显示页面如下:

img

点左边链接,右边没有显示

  • 写回答

1条回答 默认 最新

  • 前端阿彬 前端领域新星创作者 2021-12-09 23:39
    关注

    路由表里,那个子路由绑定的组件为什么要套个对象
    path:'/categories/create',
    components:{
    tbl:CategoryEdit
    }
    改成 components:CategoryEdit

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月13日
  • 已采纳回答 12月10日
  • 修改了问题 12月9日
  • 创建了问题 12月9日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵