• vue-router(二)后代路由


    关键字:router,children ,router-link,router-view,router-link-active
    先理解什么是children?
    后代路由为某路由中用到router-view时,会默认加载的路由中的后代路由。
    eg:
    这里通过点击切换tab实现动态切换路由
    先看目录结构:
    aslide组件:
    <div>
        <ul class="tabBar">
            <li v-for="(item,index) in tabList" :key="index"> <router-link :to="{path:item.url}">{{item.tit}}</router-link> </li>
        </ul>
        <router-view class="cont"></router-view>
    </div>
    样式:
    .tabBar { 
        width: 100%; 
        height: 90px; 
        display: flex;
        border-bottom: 1px solid #ccc; 
    } 
    .tabBar li { 
        display: flex;
        flex: 1; 
        height: 90px; 
    } 
    .tabBar li a {
        width: 100%; 
        line-height: 90px;
        display: block; 
        text-align: center; 
    } 
    .router-link-active { 
        color: red; /*background-color: #003399;*/
        border-bottom: 1px solid red; 
    } 
    .cont { 
        display: flex; 
        justify-content: center; 
        align-items: center; }
    js:
    export default { 
        data() { 
            return { 
                isShow: true,
                tabList: [ 
                    { url: '/a', tit: "One" }, 
                    { url: '/b', tit: "Two" }, 
                    { url: '/c', tit: "Three" } 
                ] 
            } 
        } 
    }
    下来我们还需要对router.js路由模块进行 配置
    import Vue from 'vue'
    import Router from 'vue-router'
    Vue.use(Router);
    Router.prototype.animate = 0;
    const _import = file => () => import('@/views/' + file + '.vue');
    const _import_ = file => () => import('@/components/' + file + '.vue');
    /*
    * slide:页面切换动画
    * login:是否需要登陆
    * */
    Vue.use(Router);
     
    export  default new Router({
    linkActiveClass: "router-link-active",//后代路由被激活时,给路由标签添加指定样式
    routes: [
        {
            path: '/',
            name: '首页',
            component: _import('home/index'),
            children: [
            {
                path: '',
                redirect: '/a'
            },//访问首页的时候默认访问后代路由中的a
            {
                path: '/a',
                component: _import_('common/a')
            },
            {
                path: '/b',
                component: _import_('common/b')
            },
            {
                path: '/c',
                component: _import_('common/c')
            }]
        },
        {
            path: "/list",
            name: "list",
            component: _import("home/list"),
            meta: {
                slide: 1,
                login: true
            }
        },
        {
            path: "/search",
            name: "search",
            component: _import("search/index"),
            meta: {
                slide: 1
            }
        },
        {
            path: "/center",
            name: "center",
            component: _import("center/index"),
            meta: {
                slide: 1
            }
        },]
    })
    主要核心部分如上,我们需要注意的这个属性linkActiveClass这个属性指定了后代路由被激活时所添加的样式。
    实现的思路为:当点击上述router-link中的路由时,实现动态改变router-view中的后代路由以此实现tab的切换。而后代路由中的第一项:redirect:/a意思是默认访问首页的时候,后代路由默认显示哪个
     
  • 相关阅读:
    C#项目中怎样创建和使用类和类库
    第一个存储过程程序
    C# 如何判断字符串中是否包含另一个字符串?
    word中怎么快速选中光标之前或之后的全部内容?
    DHL学习--<asp:literal
    ASP.NET后台怎么输出方法中间调试信息?
    联想THINKPAD E40的快捷键怎么关闭?哪些F1 F2 F3的键我需要用到 但是每次都按FN 太烦人了
    sql 参数化查询问题
    echarts地图 禁止高亮显示(转载)
    EChart中使用地图方式总结(转载)
  • 原文地址:https://www.cnblogs.com/bgwhite/p/9619711.html
Copyright © 2020-2023  润新知