Vue学习记录09--侧边栏

因为所有的界面都要用到,所以可以用components文件夹放公共组件

在这里插入图片描述

<template>
    <el-menu default-active="1-4-1" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose" :collapse="isCollapse">
        <el-submenu index="1">
            <template slot="title">
          <i class="el-icon-location"></i>
          <span slot="title">导航一</span>
        </template>
<el-menu-item-group>
    <span slot="title">分组一</span>
    <el-menu-item index="1-1">选项1</el-menu-item>
    <el-menu-item index="1-2">选项2</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="分组2">
    <el-menu-item index="1-3">选项3</el-menu-item>
</el-menu-item-group>
<el-submenu index="1-4">
    <span slot="title">选项4</span>
    <el-menu-item index="1-4-1">选项1</el-menu-item>
</el-submenu>
</el-submenu>
<el-menu-item index="2">
    <i class="el-icon-menu"></i>
    <span slot="title">导航二</span>
</el-menu-item>
<el-menu-item index="3" disabled>
    <i class="el-icon-document"></i>
    <span slot="title">导航三</span>
</el-menu-item>
<el-menu-item index="4">
    <i class="el-icon-setting"></i>
    <span slot="title">导航四</span>
</el-menu-item>
</el-menu>
</template>

<style>
    .el-menu-vertical-demo:not(.el-menu--collapse) {
        width: 200px;
        min-height: 400px;
    }
</style>

<script>
    export default {
        data() {
            return {
                isCollapse: true
            };
        },
        methods: {
            handleOpen(key, keyPath) {
                console.log(key, keyPath);
            },
            handleClose(key, keyPath) {
                console.log(key, keyPath);
            }
        }
    }
</script>

在home页面对当前页面进行引入、 在vue中引入。

在这里插入图片描述
在这里插入图片描述

按需引入

在这里插入图片描述

运行项目在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在data中定义数据menu

menu:[
                    {
                        path:'/',
                        name:'home',
                        label:'首页',
                        icon:'s-home',
                        url:'Home/home'
                    },
                    {
                        path:'/mall',
                        name:'mall',
                        label:'商品管理',
                        icon:'video-play',
                        url:'MallManage/MallManage'
                    },
                   {
                        path:'/user',
                        name:'user',
                        label:'用户管理',
                        icon:'user',
                        url:'UserManage/UserManage'
                    },
                    {
                        label:'其他',
                        icon:'location',
                        children:[
                            {
                                path:'/page1',
                                name:'page1',
                                label:'页面1',
                                icon:'setting',
                                url:'Other/PageOne'
                            },
                            {
                                path:'/page2',
                                name:'page2',
                                label:'页面2',
                                icon:'setting',
                                url:'Other/PageTwo'
                            }
                        ]
                    }
                ]

计算属性:

!取反,返回有children节点的列表和没有节点的列表
在这里插入图片描述

渲染数据:

  • 没有子项目的菜单:(一级菜单的展示)

在这里插入图片描述
在这里插入图片描述

  • 有子项目的菜单:(二级菜单的展示)
    在这里插入图片描述
    在这里插入图片描述

侧边栏样式布局

  • 标题颜色
    在这里插入图片描述
  • 背景颜色
  • 高亮显示
    在这里插入图片描述
    在这里插入图片描述
    贴边:
    在这里插入图片描述
    在这里插入图片描述

点击左侧menu进行路由跳转

添加点击事件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对首页的Home进行重命名
在这里插入图片描述
修改路由:
在这里插入图片描述
所有页面都可以继承Main页面下的顶栏、侧边栏

前面说可以通过name跳转,因为在路由里配置了name属性:
在这里插入图片描述
修改目录结构:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

跳转失败时看一下那几个文件对应的name,要和data里的一样!
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3 和 Element Plus 的组合中,要实现侧边折叠的效果,可以使用`el-menu`作为根节点,并结合`el-menu-item`和`el-submenu`来构建菜单。 首先,在模板中使用`el-menu`作为整个菜单的容器,并设置`collapse`属性来控制侧边的折叠状态。当`collapse`为`true`时,侧边折叠,文字会隐藏。当`collapse`为`false`时,侧边展开,文字会显示。 ```html <template> <el-menu :collapse="isCollapse"> <!-- 菜单项 --> <el-menu-item index="1">菜单项1</el-menu-item> <el-menu-item index="2">菜单项2</el-menu-item> <!-- 子菜单 --> <el-submenu index="3"> <template #title> 子菜单 </template> <el-menu-item index="3-1">子菜单项1</el-menu-item> <el-menu-item index="3-2">子菜单项2</el-menu-item> </el-submenu> </el-menu> </template> ``` 然后,在data中定义一个`isCollapse`变量来控制折叠状态的切换。通过点击按钮或其他交互方式,修改`isCollapse`的值来实现侧边的折叠和展开。 ```javascript <script> export default { data() { return { isCollapse: true, // 初始化折叠状态为true,侧边默认折叠 }; }, }; </script> ``` 需要注意的是,`el-menu`标签本身希望里面嵌套的是`el-menu-item`、`el-submenu`、`el-menu-item-group`其中之一。因此,我们要根据菜单的结构来合理使用这些标签。 通过上述方法,你可以实现在Vue 3 和 Element Plus 中的侧边折叠效果。根据`el-menu`的属性设置和交互操作来控制侧边的折叠和展开状态,从而实现文字的隐藏和显示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值