elementui plus 配合 vue-router 实现组件动态加载

这是一个使用Vue.js构建的用户设置界面示例,包含一个侧边菜单(el-menu),菜单项通过index与路由匹配。当点击菜单项时,<router-view>标签会根据路由配置加载相应的组件,如个人信息、我的租户和账号安全等。
摘要由CSDN通过智能技术生成

直接上代码

usersetting.vue

<template>
    <div class="usersetting">
        <div class="title">
            用户设置
        </div>
        <div class="main">
            <div class="menu">
                // 可以通过el-menu-item 的 index 实现路由匹配
                <el-menu default-active="/system/usersetting/personalInformation" class="el-menu-vertical-demo" router>
                    <el-menu-item index="/system/usersetting/personalInformation" >
                        <template #title>
                            <el-icon><user /></el-icon>
                            <span>个人信息</span>
                        </template>
                    </el-menu-item>
                    <el-menu-item index="/system/usersetting/myRelTenantIds">
                        <template #title>
                            <el-icon><user /></el-icon>
                            <span>我的租户</span>
                        </template>
                    </el-menu-item>
                    <el-menu-item index="/system/usersetting/accountSafety">
                        <template #title>
                            <el-icon><Lock /></el-icon>
                            <span>账号安全</span>
                        </template>
                    </el-menu-item>
                </el-menu>
            </div>
            <div class="conten">
                <router-view></router-view> // 这个标签会自动在当前页面的路由下寻找 children,所以要在路由配置文件中配置好相应组件的路由
            </div>
        </div>
    </div>
</template>
<script>
export default {
    name: 'usersetting'
}
</script>

/router/index.js

import { createRouter } from "vue-router";
const routes = [
    {
				path: '/system/usersetting',
				title: '系统账户设置',
				name: 'usersetting',
				component: () => import('@/views/system/usersetting.vue'),
				children: [
					{
						path: '/system/usersetting/personalInformation',
						title: '个人信息',
						name: 'personalInformation',
						component: () => import('@/views/system/components/personalInfomation.vue')
					},
					{
						path: '/system/usersetting/myRelTenantIds',
						title: '个人信息',
						name: 'myRelTenantIds',
						component: () => import('@/views/system/components/myRelTenantIds.vue')
					},
					{
						path: '/system/usersetting/accountSafety',
						title: '账号安全',
						name: 'accountSafety',
						component: () => import('@/views/system/components/accountSafety.vue')
					},
				]
			}
]

// 导出路由
const router = createRouter({
	routes
});


export default router

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值