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

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日

悬赏问题

  • ¥35 用python实现除法算法中goldschmidt算法
  • ¥15 汇编代码转换成C代码
  • ¥15 除法算法中的归一化具体是怎么变的?
  • ¥20 集成电路的逻辑电路和晶体管简化图
  • ¥15 下载windows builder后的问题
  • ¥15 按要求对程序的逻辑进行更正
  • ¥50 悬赏帮写C++编程 诚信
  • ¥15 端口连接数为什么会有限制
  • ¥15 安卓数据提交之后格式不对
  • ¥15 需要数据库运行的图片