vant NavBar 头部导航切换(项目中)

本文介绍了如何在Vue.js项目中使用Vant的NavBar组件进行头部导航的切换。首先展示了实现的效果,然后详细阐述了实现步骤,包括下载Vant库,自动按需引入组件,配置及路由mate属性的设置,最后讲解了如何在具体页面中编辑应用这些配置。

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

vant NavBar 头部导航切换(项目中)

效果

在这里插入图片描述

步骤

  1. 下载
    在这里插入图片描述
// Vue
// # Vue 2 项目,安装 Vant 2:
npm i vant -S

// # Vue 3 项目,安装 Vant 3:
npm i vant@next -S
  1. 自动按需引入组件
    在这里插入图片描述
// # npm 
npm i babel-plugin-import -D

// # yarn
yarn add babel-plugin-import -D
  1. 配置及引入
    在这里插入图片描述
    在这里插入图片描述
// main.js
import Vue from 'vue'
import App from './App.vue'
import '@/mobile/flexible'  // 适配
import '@/styles/reset.css' // 初始化样式
import router from '@/router' // 路由对象

import { Tabbar, TabbarItem, NavBar } from 'vant'
Vue.use(Tabbar)
Vue.use(TabbarItem)
Vue.use(NavBar)

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App),
}).$mount('#app')
  1. 使用
    在这里插入图片描述
  2. 配置路由 mate 属性
    在这里插入图片描述
// 配置路由 mate 属性
// 路由 - 相关模块
import Vue from "vue"
import VueRouter from "vue-router"
import Layout from "@/views/Layout/index.vue"
import Home from "@/views/Home"
import Search from "@/views/Search"
import Play from "./../views/Play"

// 路由 - 注册
Vue.use(VueRouter)
// 路由- 规则数组  
const routes = [
  {
    path: '/',          // 网页打开时默认的跟路由  
    redirect: '/layout' // 强制重定向路径
  },
  {
    path: '/layout',
    component: Layout,
    redirect: '/layout/home', // 二级路由 
    children: [
      {
        path: 'home',
        component: Home,
        meta: {
          title: "首页"
        }
      },
      {
        path: 'search',
        component: Search,
        meta: {
          title: "搜索"
        }
      }
    ]
  },
  {
    path: '/play',
    component: Play
  },
]

// 生成路由对象
const router = new VueRouter({
  routes
})

// 导出
export default router
  1. 页面编辑
    在这里插入图片描述
// src/views/Layout/index.vue
<template>
  <div>
    <van-nav-bar
      :title="activeTitle"
    />
    <!-- 二级路由 - 挂载点 -->
    <router-view></router-view>
    <van-tabbar route>
      <van-tabbar-item replace to="/layout/home" icon="home-o">首页</van-tabbar-item>
      <van-tabbar-item replace to="/layout/search" icon="search">搜索</van-tabbar-item>
    </van-tabbar>
  </div>
</template>

<script>
export default {
  data () {
    return {
      activeTitle: this.$route.meta.title,
    }
  },
  // 路由切换 - 监听 $route 对象改变
  watch: {
    $route() {
      this.activeTitle = this.$route.meta.title
    }
  }
};
</script>

<style scoped>
/* 中间内容区域 - 容器样式(留好上下导航所占位置) */
.main {
  padding-top: 46px;
  padding-bottom: 50px;
}
</styles>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

259-aaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值