vue中拆分子组件和子路由的步骤

本文详细介绍了在Vue.js中如何拆分组件和子路由的步骤。首先,通过import导入Header.vue和Slider.vue组件,然后在出口对象中声明components属性,将组件挂载到布局中。接着,引入adminRoute和protalRoute,整合到路由数组中,创建VueRouter实例,并配置相应的路由重定向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原理:利用import和export 也就是导入和导出

一、vue中拆分子组件

1

import cxHeader from "./Header.vue";

import cxSlider from "./Slider.vue";

2. <cx-header></cx-header>

3.

export default {

  components: {

    cxHeader,

    cxSlider,

  },

};

1)layout中

 

2)Header.vue

 

3)Slider.vue中

二、vue中拆分子路由

1)

import adminRoute from "./admin"

import protalRoute from "./protal"

// redirect路由重定向  值和子路由中path名相同

const routes = [

    ...adminRoute,

    ...protalRoute

]

const router = new VueRouter({

    routes

})

2)在admin.js中

// 后台路由
import Layout from '../views/layout/Layout.vue'
import Home from "../views/Home.vue"
//用户管理
import User from "../views/user/User.vue"
import AddUser from "../views/user/AddUser.vue"
//分类管理
import Classify from "../views/classify/Classify.vue";
import AddClassify from "../views/classify/AddClassify.vue";
// 菜单管理
import Menu from "../views/menu/Menu.vue"
import AddMenu from "../views/menu/AddMenu.vue"
// 文章管理
import Artical from "../views/artical/Artical.vue"
import AddOrEditArtical from "../views/artical/AddOrEditArtical.vue"
//banner管理
import Banner from "../views/banner/Banner.vue"
import AddBanner from "../views/banner/AddBanner.vue"
// mannger管理
import Manager from "../views/manager/Manager.vue"
// 用户后台登录
import Login from "../views/login/Login.vue"

//后台路由
const adminRoute = [
    // 后台路由
    { path: '/', redirect: '/admin' },
    {
        path: '/admin', //一级路由
        redirect: '/admin/dashboard',
        component: Layout,
        children: [{ path: 'dashboard', name: 'home', component: Home, meta: { name: '首页' } }]
    },
    //后台登录
    {
        path: '/admin/login',
        name: 'adlogin',
        component: Login,
    },
    // 用户管理
    {
        path: '/admin/user',
        component: Layout,
        children: [
            { path: 'index', name: 'user', component: User, meta: { name: '用户列表' } },
            { path: 'adduser', name: 'adduser', component: AddUser, meta: { name: '添加用户' } }
        ]
    },
    //分类管理classfiy和addclass
    {
        path: '/admin/classify',
        component: Layout,
        children: [
            { path: 'index', name: 'classify', component: Classify, meta: { name: '分类列表' } },
            { path: 'addclassify', name: 'addclassify', component: AddClassify, meta: { name: '添加分类' } }
        ]
    },
    {
        path: '/admin/menu',
        component: Layout,
        children: [
            { path: 'index', name: 'menu', component: Menu, meta: { name: '菜单列表' } },
            { path: 'addmenu', name: 'addmenu', component: AddMenu, meta: { name: '添加菜单' } }
        ]
    },
    //文章管理
    {
        path: '/admin/artical',
        component: Layout,
        children: [
            { path: 'index', name: 'artical', component: Artical, meta: { name: '文章列表' } },
            { path: 'changeartical', name: 'changeartical', component: AddOrEditArtical, meta: { name: '添加文章' } }
        ]
    },
    //banner管理 
    {
        path: '/admin/banner',
        component: Layout,
        children: [
            { path: 'index', name: 'banner', component: Banner, meta: { name: '轮播图列表' } },
            { path: 'addbanner', name: 'addbanner', component: AddBanner, meta: { name: '添加轮播图' } }
        ]
    },
    //manager管理
    {
        path: '/admin/manager',
        component: Layout,
        children: [
            { path: 'index', name: 'manager', component: Manager, meta: { name: '管理列表' } },
        ]
    },
    {
        path: '*',
        component: Layout,
        redirect: '/404',
        children: [{
                path: '/404',
                name: '404',
                component: () =>
                    import ("@/views/error/404.vue")
            },

        ]
    }
]

export default adminRoute;

3)protal.js中

    //前台路由
    import PortalLogin from "../views/portal/login/Login.vue"
    import PortalRegister from "../views/portal/register/Regiter.vue"
    import ProtalLayout from "../views/portal/index/Layout2.vue"
    import Index from "../views/portal/index/Index.vue"
    import Detail from "../views/portal/detail/Detail.vue"
    import Send from "../views/portal/send/Send.vue"

    const protalRoute = [
        //前台路由
        {
            path: '/',
            redirect: '/index',
            component: ProtalLayout,
            children: [
                { path: '/index', name: 'index', component: Index },
                { path: '/detail', name: 'detail', component: Detail },
                { path: '/send', name: 'send', component: Send }
            ]
        },
        {
            path: '/login',
            name: 'login',
            component: PortalLogin
        },
        {
            path: '/register',
            name: 'register',
            component: PortalRegister
        },

    ]
    export default protalRoute;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值