超详细的vue结合ElementUI实现头部导航栏进行页面跳转

先看看效果
在这里插入图片描述

  1. 首先给大家看一下我的vue项目的构成
    在这里插入图片描述
    2.每个页面里的内容
    Home.vue
    在这里插入图片描述
    movie.vue
    在这里插入图片描述
    novel.vue
    在这里插入图片描述

NavMenu.vue
在这里插入图片描述

<template>
  <div id="NavMenu">
    <el-menu
        :default-active="toIndex"
        class="el-menu-demo"
        text-color="#000000"
        active-text-color="#3989fa"
        mode="horizontal"
        @select="handleSelect"
    >
      <el-menu-item v-for="(item, index) in itemList" :index="item.path" :key="index">
        <span slot="title">{{ item.title }}</span>
      </el-menu-item>
    </el-menu>
    <el-main>
      <router-view></router-view>
    </el-main>
  </div>
</template>

<script>
export default {
  name: "NavMenu",
  data() {
    return {
      itemList: [    // 水平一级菜单栏的菜单
        { path: '/home', title: '首页' },
        { path: '/movie', title: '电影' },
        { path: '/novel', title: '小说' },

      ],
    };
  },
  computed: {
    toIndex(){  // 根据路径绑定到对应的一级菜单,防止页面刷新重新跳回第一个
      return '/' + this.$route.path.split('/')[1];
    },
  },
  methods: {
    handleSelect(path){  // 切换菜单栏
      this.$router.push({
        path: path
      });
    },
  },

};
</script>

<style scoped>
</style>
  1. 其他文件的配置
    app.vue
    在这里插入图片描述
    main.js
    在这里插入图片描述
    路由配置
    在这里插入图片描述
import Vue from 'vue'
import VueRouter from 'vue-router'
import NavMenu from "@/views/NavMenu";
import movie from "@/views/movie";
import novel from "@/views/novel";
import Home from "@/views/Home";
Vue.use(VueRouter)

export default new VueRouter(
    {
         routes : [
             {
                 path: '/',  // 程序启动默认路由
                 component: NavMenu,
                 meta: {title: '整体页面布局'},
                 redirect: '/home',  // 重定向到首页
                 children:[
                     {
                         path: '/home',  // 程序启动默认路由
                         component: Home,
                         meta: {title: '首页'},

                     },
                     {
                         path: '/movie',  // 程序启动默认路由
                         component: movie,
                         meta: {title: '电影'},

                     },
                     {
                         path: '/novel',  // 程序启动默认路由
                         component: novel,
                         meta: {title: '小说'},

                     },
                 ]
             },
        ]
    }
)

  • 10
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用 Vue 和 Element UI 实现顶部导航栏的步骤如下: 1. 安装 Vue 和 Element UI ```bash npm install vue npm install element-ui ``` 2. 引入 Element UI 在 `main.js` 文件中引入 Element UI: ```javascript import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) ``` 3. 创建顶部导航栏组件 在 `components` 目录下创建 `Header.vue` 组件,代码如下: ```vue <template> <div class="header"> <div class="header-logo">Logo</div> <el-menu class="header-menu" mode="horizontal"> <el-menu-item index="1">导航一</el-menu-item> <el-menu-item index="2">导航二</el-menu-item> <el-menu-item index="3">导航三</el-menu-item> <el-submenu index="4" placement="bottom-start"> <template slot="title">导航四</template> <el-menu-item index="4-1">选项1</el-menu-item> <el-menu-item index="4-2">选项2</el-menu-item> <el-menu-item index="4-3">选项3</el-menu-item> </el-submenu> </el-menu> <div class="header-user">用户信息</div> </div> </template> <script> export default { name: 'Header' } </script> <style> .header { display: flex; justify-content: space-between; align-items: center; padding: 10px; background-color: #fff; box-shadow: 0px 1px 5px rgba(0, 0, 0, 0.1); } .header-logo { font-size: 24px; font-weight: bold; } .header-menu { margin: 0 20px; } .header-user { font-size: 14px; color: #999; } </style> ``` 4. 在 App.vue 中使用顶部导航栏组件 在 `App.vue` 文件中引入 `Header.vue` 组件,并在模板中使用: ```vue <template> <div class="app"> <Header /> <router-view /> </div> </template> <script> import Header from './components/Header.vue' export default { name: 'App', components: { Header } } </script> <style> .app { height: 100vh; display: flex; flex-direction: column; } </style> ``` 完成以上步骤后,你就可以在 Vue 应用中使用顶部导航栏组件了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值