Vue2通用后台管理系统(5)左侧菜单栏的引入【组件化】

在src/components/Common Aside.vue中:

<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>

 在src/views/Main.vue中:

<template>
    <el-container>
        <el-aside width="200px">
            <common-aside />
        </el-aside>
        <el-container>
            <el-header>Header</el-header>
            <el-main>
                <!-- 路由出口 -->
                <!-- 路由匹配的组件渲染在这里 -->
                <router-view></router-view>
            </el-main>
        </el-container>
    </el-container>
</template>

<script>
import CommonAside from '../components/CommonAside.vue';

export default {
    data() {
        return {}
    },
    components: {
        CommonAside
    }
}
</script>

运行后效果:

 

Vue 商品后台管理系统项目通常会采用模块化的设计结构,以便于代码管理和复用。以下是一个常见的 Vue 后台管理系统的项目结构概述: 1. **src** (源码目录): - **api**:用于封装 RESTful API 调用的模块,处理数据交互。 - **components**: - **Common**:通用组件,如头部、导航栏、表单等。 - **AdminLayout**:管理员布局,包含左侧菜单和右侧内容区域。 - **Goods**:商品相关的组件,如商品列表、商品详情、添加/编辑商品等。 - **views**:视图层,根据功能模块划分,如 goods.vue、dashboard.vue 等。 - **models** 或 **services**: 存放数据模型(Vuex store)和业务逻辑模块。 - **store**:Vuex 存储状态和处理 Actions, Mutations。 - **router**:定义路由规则,包括页面跳转和路由守卫。 - **vuex**:如果使用 Vuex 进行状态管理,会有对应的配置文件和模块。 2. **public**:静态资源目录,如 CSS 文件、图片和字体文件等。 - **assets**:存放静态资源,如图标、主题颜色等。 - **index.html**:基本的 HTML 模板,引入 Vue.js 和其他依赖。 3. **.env** 或 **.env.production**: 环境变量文件,根据开发、测试或生产环境设置不同配置。 4. **package.json**:项目依赖和脚本配置。 5. **README.md**:项目文档和使用说明。 6. **.gitignore**:忽略文件列表,防止提交不需要的文件到版本库。 7. **tsconfig.json**(如果使用 TypeScript):TypeScript 配置文件。 8. **jest.config.js**(如果使用 Jest 测试):测试配置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值