vue子路由跳转实现tab选项卡
现在很多的后台管理系统都采用tab选项卡的布局,左边是导航栏固定,右边是对应的页面,每次点击左边的导航标题,只有右面的对应页面再切换,而vue要做tab选项卡,推荐使用<router-link></router-link>实现a标签的效果,然后使用<router-view></router-view>实现插槽的效果,把对应的页面 "塞" 进去,具体实现看狼蚁网站SEO优化的案例
1、这是tab选项卡的页面,布局就不说了,主要是<router-link :to="a.url" :key="index" v-for="(a,index) in Data">{{a.title}}</router-link>,其中to指向你要跳转的路径,这是关键,而<router-view></router-view>就是最终其他子页面要显示的地方
<template> <div class="index-box"> <nav> <h1>导航</h1> <!-- 所有的导航标题,进行路由跳转指向 --> <router-link :to="a.url" :key="index" v-for="(a,index) in Data">{{a.title}}</router-link> </nav> <div class="content"> <!-- 路由插槽路由跳转的位置 --> <router-view></router-view> </div> </div> </template> <script> import navData from "../../static/data/nav" export default { name: "Index", data(){ return { Data:[] } }, methods:{ init(){ this.Data = navData.navData; } }, created(){ this.init(); } } </script> <style scoped> / 容器 / .index-box{ width: 100%; height: 100%; background: #212224; display: flex; } / 左侧导航条 / nav{ width: 260px; height: 100%; background: #323437; overflow: hidden; float: left; } / 导航 / nav h1{ color: #f2ffff; margin: 10px 0 10px 10px; } / 导航标题 / nav a{ display: block; width: 100%; height: 45px; color: #f2ffff; background: #2e3033; padding-left: 10px; line-height: 45px; font-size: 20px; margin-bottom: 10px; } / 右侧内容 / .content{ flex: 1; padding: 20px; } </style>
2、路由配置
这个案例中,默认显示的就是我tab选项卡的页面,所以其他子页面我就以这个页面配置的子路由
如果有其他需求,就再需要的地方配置子路由即可
import Vue from 'vue' import Router from 'vue-router' // 首页 import Tab from "../pages/Tab" // 页面一 import PageOne from "../pages/PageOne" // 页面二 import PageTwo from "../pages/PageTwo" // 页面三 import PageThree from "../pages/PageThree" Vue.use(Router); export default new Router({ routes: [ { // 默认显示的页面 path: '/', name: 'Tab', ponent: Tab, children:[ { // 子路由中默认显示的页面 path: '', name: 'PageOne', ponent: PageOne }, { path: 'PageTwo', name: 'PageTwo', ponent: PageTwo }, { path: 'PageThree', name: 'PageThree', ponent: PageThree } ] } ] })
这里再提供一种情况比如我默认显示的是登录页面,登录进入后是首页,是tab选项卡的布局,所以我只要给首页配置子路由就可以了
import Vue from 'vue' import Router from 'vue-router' // import HelloWorld from '@/ponents/HelloWorld' // 首页框架 import Index from "../pages/Index"; // 首页 import FunctionsIndex from "../ponents/Functions/FunctionsIndex"; // 数据源列表 import FunctionsDbSource from "../ponents/Functions/FunctionsDbSource" // 角色管理 import FunctionsRoleManagement from "../ponents/Functions/FunctionsRoleManagement" // 登录 import Login from "../pages/Login" Vue.use(Router); export default new Router({ linkExactActiveClass: "act", mode: "history", routes: [ { // 首页 path: '/Index', name: 'Index', ponent: Index, children: [ { // 首页中默认显示统计页面 path: '', name: 'Total', ponent: FunctionsIndex }, { path: 'DbSource', name: 'DbSource', ponent: FunctionsDbSource }, { path: 'RoleManagement', name: 'RoleManagement', ponent: FunctionsRoleManagement } ] }, // 默认显示登录页面 { path: '/', name: 'Login', ponent: Login } ] })
3、配置json文件
因为每个系统,侧边栏的导航标题都不一样,而且也不能保证后期不会再加,所以我推荐把导航标题提出来,到时候只要v-for循环<router-link>就可以了(循环具体操作返回上面看第一个代码块),然后在选项卡页面引入json,在vue方法中把它赋值给data中的变量,创建后调用方法即可,之后再增加导航标题,只需要在json中增加即可
{ "navData":[ { "title":"子页一", "url":"/" }, { "title":"子页二", "url":"/PageTwo" }, { "title":"子页三", "url":"/PageThree" } ] }
4、之后写好其他页面,就能实现这个效果了
<template> <h1>这是子页一,默认显示</h1> </template> <script> export default { name: "PageOne" } </script> <style scoped> h1{ color: #f2ffff; } </style>
效果图
再追加一个上面所说的默认是登录页面,然后登录成功后显示首页的tab选项卡的效果图,因为没开数据库,我就模拟演示一下,手动登录成功进入主页
好了,以上就完成了一个简单的tab选项卡布局,大家去试试吧。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程