vue header+main布局,路由在main中跳转

本文介绍了如何在Vue项目中构建header组件并实现路由在main区域的跳转。步骤包括创建header组件,定义路由菜单,编写Home组件引入Header和router-view,以及在router文件和main.js中进行相关配置,最终展示实际效果。

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

1、编写header组件,两个按钮对应两个路由跳转

<template>
  <div class="z-header">
    <button @click="redirect('/p1')">菜单1</button>
    <button @click="redirect('/p2')">菜单2</button>
  </div>
</template>

<script>
export default {
name: "Header",
  methods:{
    redirect(path){
      this.$router.push({path:path})
    }
  }
}
</script>

<style scoped>
.z-header {
  height: 100px;
  width: 100%;
  background-color: rosybrown;
}
</style>

2、编写两个路由菜单

<template>
  <div>
    <h1>菜单1</h1>
    <button>菜单1</button>
    <input/>
  </div>
</template>

<script>
export default {
  name: "path1"
}
</script>

<style scoped>

</style>

<template>
  <div>
    <h1>菜单2</h1>
    <button>菜单2</button>
    <input/>
  </div>
</template>

<script>
export default {
  name: "path2"
}
</script>

<style scoped>

</style>

3、编写Home组件,引入Header和router-view

<template>
  <div class="home">
    <Header></Header>
    <router-view></router-view>
  </div>
</template>

<script>
import Header from "@/components/Header";
export default {
  name: 'Home',
  components: {
    Header
  }
}
</script>

4、router文件中index.js

import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'

Vue.use(VueRouter)

const routes = [
    {
        path: '/',
        name: 'Home',
        component: Home,
        children:[]  //组件中子路由跳转,可以直接把子路由写在这,
    }
]

const router = new VueRouter({
    routes
})

export default router

项目中的页面可能会有很多,分别放在不同的文件夹,可以在放置页面的文件夹中新建index.js来push进children,如下图所示
在这里插入图片描述
index.js

export default {
    install(Vue, router) {
        router.options.routes[0].children.push(//routes[0]代表router文件中index.js中的第一个路由
            {
                path:'/p1',
                name:'p1',
                component: () => import('../views/path1.vue')
            },
            {
                path:'/p2',
                name:'p2',
                component: () => import('../views/path2.vue')
            }
        );
        router.addRoutes(router.options.routes);
    }
};

此时这个js文件是不生效的,需要在main.js中配置

import views from '../src/views';
Vue.use(views, router);

绑定router之后才可生效
5、效果图
'/'路由所示页面
在这里插入图片描述
点击菜单1进入菜单1页面
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值