效果

步骤
- 下载

npm i vant -S
npm i vant@next -S
- 自动按需引入组件

npm i babel-plugin-import -D
yarn add babel-plugin-import -D
- 配置及引入


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')
- 使用

- 配置路由 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
- 页面编辑

<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,
}
},
watch: {
$route() {
this.activeTitle = this.$route.meta.title
}
}
};
</script>
<style scoped>
.main {
padding-top: 46px;
padding-bottom: 50px;
}
</styles>