<template> <div class="sidebar"> <el-row class="menu_page"> <el-col> <el-menu mode="vertical" class="el-menu-vertical-demo" :collapse="collapse" :default-active="$route.path" background-color="#324057" text-color="#fff"> <div class="wrapper" ref="wrapper"> <Menu :items='items'/> </div> </el-menu> </el-col> </el-row> </div> </template>
时间: 2023-10-21 18:05:34 浏览: 154
这是一个 Vue.js 的组件代码,该组件定义了一个名为 "sidebar" 的侧边栏,它包含一个 el-menu 组件,其中的 items 数据由上层组件传递进来,根据传入的数据动态生成菜单项。其中,el-menu 组件的 mode 属性设置为 vertical,表示垂直布局,collapse 属性用于指定侧边栏是否折叠,default-active 属性用于设置默认选中项,background-color 和 text-color 属性用于设置菜单的背景色和文本颜色。此外还有一个名为 "wrapper" 的 div 元素,用于包裹 el-menu 组件。
相关问题
<template> <div class="home"> <el-row class="header"> <el-col :span="24"> <!-- 头部内容 --> <h1>后台管理系统</h1> <a href="#" @click="handleLogout">注销</a> </el-col> </el-row> <el-row class="content"> <el-col :span="6" class="sidebar"> <!-- 侧边栏 --> <el-menu :default-active="activeMenu" class="menu"> <el-menu-item index="1"> <i class="el-icon-s-home"></i> <span>首页</span> </el-menu-item> <el-menu-item index="/category"> <i class="el-icon-s-data"></i> <span>分类管理</span> <router-link to="/category"> <el-menu-item>分类管理</el-menu-item> </router-link> </el-menu-item> <el-menu-item index="3"> <i class="el-icon-s-tools"></i> <span>系统设置</span> </el-menu-item> </el-menu> </el-col> <el-col :span="18" class="main"> <!-- 主要内容 --> <router-view ></router-view> </el-col> </el-row> <el-row class="footer"> <el-col :span="24"> <!-- 底部信息 --> 版权所有 © 2022 后台管理系统 </el-col> </el-row> </div> </template>还是会跳到新页面
根据你提供的代码,问题出现在你在 `<router-link>` 标签内嵌套了 `<el-menu-item>` 标签。这样会导致 `<el-menu-item>` 标签成为嵌套关系中的子菜单项,而不是路由链接。
为了解决这个问题,你应该将 `<router-link>` 标签直接放在 `<el-menu-item>` 标签的外层。这样,点击菜单项时才会触发路由切换。
以下是修改后的示例代码:
```html
<el-menu :default-active="activeMenu" class="menu">
<el-menu-item index="1">
<router-link to="/">
<i class="el-icon-s-home"></i>
<span>首页</span>
</router-link>
</el-menu-item>
<el-menu-item index="/category">
<router-link to="/category">
<i class="el-icon-s-data"></i>
<span>分类管理</span>
</router-link>
</el-menu-item>
<el-menu-item index="3">
<router-link to="/system">
<i class="el-icon-s-tools"></i>
<span>系统设置</span>
</router-link>
</el-menu-item>
</el-menu>
```
在这个修改后的代码中,`<router-link>` 标签直接包裹菜单项的图标和文字内容。这样,在点击菜单项时,会触发路由切换,而不会跳转到新页面。
希望这次的回答能够解决你的问题。如果还有其他疑问,请随时提问。
<template> <div> <el-menu mode="vertical" class="sidebar"> <el-menu-item index="1">学校介绍</el-menu-item> <el-menu-item index="2" @click="show = 1">学校地图</el-menu-item> <el-menu-item index="3">专业信息</el-menu-item> </el-menu> </div> <div v-if="show === 1" class="main"> <img :src="mapImage" alt="学校地图" /> </div> </template> 把图片容器放到el-menu的右侧
你可以将图片容器放到 `<el-menu>` 的右侧,可以通过在 `<el-menu>` 外部包裹一个 `<el-row>`,然后在 `<el-row>` 中创建两个列,一个用于放置 `<el-menu>`,另一个用于放置图片容器。以下是修改后的代码示例:
```html
<template>
<div>
<el-row>
<el-col :span="16">
<el-menu mode="vertical" class="sidebar">
<el-menu-item index="1">学校介绍</el-menu-item>
<el-menu-item index="2" @click="show = 1">学校地图</el-menu-item>
<el-menu-item index="3">专业信息</el-menu-item>
</el-menu>
</el-col>
<el-col :span="8">
<div v-if="show === 1" class="main">
<img :src="mapImage" alt="学校地图" />
</div>
</el-col>
</el-row>
</div>
</template>
```
在上面的代码中,我们使用了 `<el-row>` 和 `<el-col>` 来创建两列布局,左侧列占据了 16 格(即 `:span="16"`),右侧列占据了 8 格(即 `:span="8"`)。左侧列包含了原来的 `<el-menu>`,右侧列包含了图片容器。这样就能实现将图片容器放到 `<el-menu>` 的右侧。
阅读全文