vue自定义tab导航栏(方法一)

效果图如下

499afab0ceb04d59a067648d26a416f2.png

一、引用Vant 4组件库

Vant 4 - 轻量、可定制的移动端组件库 (gitee.io)

二、快速上手Vant4

快速上手 - Vant 4 (gitee.io)

三、安装Vue Router

安装 | Vue Router (vuejs.org)

四、创建vue文件

20ed7128b85c4fb083016b2186f2a226.png

        1、layoutIndex.vue  基本架子,内置自定义底部导航栏代码

        2、mainIndex.vue    首页页面

        3、menuIndex.vue   菜单页面

        4、shopIndex.vue    购物页面

        5、myIndex.vue       我的页面

五、导入tab图标

f6a3e202d9eb4dc09de62824e4f9757c.png

六、 配置router内容

import { createRouter, createWebHistory } from 'vue-router'
import layout from '@/views/Layout/layoutIndex.vue'
import home from '@/views/Layout/mainIndex.vue'
import menu from '@/views/Layout/menuIndex.vue'
import shop from '@/views/Layout/shopIndex.vue'
import my from '@/views/Layout/myIndex.vue'
const router = createRouter({
  history: createWebHistory(),
  routes: [
    {
      path: '/',
      name: 'layout',
      component: layout,
      redirect: '/home',
      children: [
        { path: '/home', name: 'home', component: home },
        { path: '/menu', name: 'menu', component: menu },
        { path: '/shop', name: 'shop', component: shop },
        { path: '/my', name: 'my', component: my }
      ]
    }
  ]
})
export default router

七、搭建基本页面 

f1de7a4fe23f46729b20bc2475a148ec.png

 八、上自定义tab代码(layoutIndex.vue)

<script setup>
import { ref } from 'vue'
import home from '@/assets/images/home.png'
import home_active from '@/assets/images/home_active.png'
import menu from '@/assets/images/menu.png'
import menu_active from '@/assets/images/menu_active.png'
import shop from '@/assets/images/shopbag.png'
import shop_active from '@/assets/images/shopbag_active.png'
import my from '@/assets/images/my.png'
import my_active from '@/assets/images/my_active.png'
const home_icon = {
    num: 1,
    active: home_active,
    inactive: home
};
const menu_icon = {
    num: 2,
    active: menu_active,
    inactive: menu
};
const shop_icon = {
    num: 3,
    active: shop_active,
    inactive: shop
};
const my_icon = {
    num: 4,
    active: my_active,
    inactive: my
}
const num = ref(0);
</script>
<template>
    <div>
        <router-view />
        <van-tabbar route v-model="num">
            <van-tabbar-item replace to="/home">
                <span>首页</span>
                <template #icon="props">
                    <img :src="props.active ? home_icon.active : home_icon.inactive" />
                </template>
            </van-tabbar-item>
            <van-tabbar-item replace to="/menu">
                <span>菜单</span>
                <template #icon="props">
                    <img :src="props.active ? menu_icon.active : menu_icon.inactive" />
                </template>
            </van-tabbar-item>
            <van-tabbar-item replace to="/shop">
                <span>购物</span>
                <template #icon="props">
                    <img :src="props.active ? shop_icon.active : shop_icon.inactive" />
                </template>
            </van-tabbar-item>
            <van-tabbar-item replace to="/my">
                <span>我的</span>
                <template #icon="props">
                    <img :src="props.active ? my_icon.active : my_icon.inactive" />
                </template>
            </van-tabbar-item>
        </van-tabbar>
    </div>
</template>
<style scoped lang="less"></style>

九、配置App.vue

<script setup>
import Layout from '@/views/Layout/layoutIndex.vue'
</script>

<template>
  <Layout></Layout>
</template>

十、恭喜你!成功自定义tab导航栏!

 

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值