vue-router

总结:

应该把导航作为一种引入模式的文件,哪里需要就在哪里去引入,
- 在这个项目中,把NavList插入到各个页面中
- 可以满足当你点击一个选选项的时候,不需要导航的场景

1.路由的嵌套:

- 嵌套路由时,需要在index.js文件中的路由配置中相应页面加上children:[path,component]  
- 在二级页面的router-link标签中,需要添加上完整的页面路径
- 三级路由和二级一致,加入children就好

2.重定向:
在路由的index文件中加入redirect,定义默认页面

    有关router-view:哪里需要显示视图哪里就加上router-view

3.路由传递参数:
- 需要传递参数时,则在index中加上name这个属性,同path、component位置一致
- 方式一:在传递页面的选项加入,其中
100为传递的参数,接收页面为{{ $route.params.count }} ,此时可以在页面网址中看到你传递的参数:http://localhost:8080/#/master/100
- 方式二:传递页面中专家,网页地址变为
http://localhost:8080/#/master?count=100

4.导航的高亮
- 使用linkActiveClass配置全局,让 router-link-active用active代替

用Vue-router做一个导航

router–>index.js

import Vue from 'vue'
import Router from 'vue-router'
import Index from '@/components/index'
import Course from '../components/course'
import Master from '../components/master'

import one from '../components/pages/one'
import two from '../components/pages/two'



Vue.use(Router)

export default new Router({
  mode: "history",
  linkActiveClass:"active",
  routes: [{
      path: '/',
      name: 'index',
      component: Index
    },{
      path:'/course',
      name: 'course',
      component: Course,
      // 默认重定向进来就是one页面
      redirect: "/course/one",
      children:[
        {
           path:'one',
           name: 'one',
           component:one
        },
        {
          path:'two',
          name: 'two',
          component:two
        }
      ]
    },{
      path:'/master/:count/:type',
      name: 'master',
      component: Master
    }]
})

componest–>NavList.vue: 主导航栏,只在需要显示的选项中显示,通过params:{count:100,type:obj},可以传递多个数据


<template>
    <div>
        <ul>
            <li><router-link exact to="/">首页</router-link></li>
            <li><router-link :to="{ path:'/course' }">课程</router-link></li>
            <!-- <li><router-link to="/master">专家</router-link></li> -->
            <!-- <li><router-link :to="{ name:'master',params:{count:100} }">专家</router-link></li>  -->
            <!-- <router-link :to="{ path: '/master', query: { count: 100 }}">专家</router-link> -->
            <li><router-link :to="{ name:'master',params:{count:100,type:obj} }">专家</router-link></li> 
        </ul>
    </div>
</template>

<script>
export default {
    name:"navlist",
    data(){
        return{
           obj:{
               name:"iwen"
           }
        }
    }
}
</script>

<style scoped>
div{
  width:100%;
  height: 50px;
  background: #f1f1f1;
  line-height: 50px
}
ul{
    list-style: none;
}
li{
    float: left;
    margin: 0 20px;
}
</style>

componest–>course.vue:分为左右两栏,点击左边选项,右边变成相应的页面

<template>
   <div>
      <NavList/>
      <div class="left">
          课程页面
          <ul>
              <li><router-link to="/course/one">111</router-link></li>
              <li><router-link to="/course/two">222</router-link></li>
              <li>333</li>
          </ul>
      </div>
      <div class="right">
          <router-view></router-view>
      </div>   
   </div>    
</template>

<script>

import NavList from "./NavList"
export default {
    name: "course",
    data(){
        return{

        }
    },
    components: {
      NavList
    }
}
</script>

<style scoped>
.left, .right{
   float: left;
}
.right{
    margin-left: 50PX;
}
</style>

components–>master.vue: 通过params来进行数据的接收


<template>
   <div>
      专家页面:{{ $route.params.count }} -- {{$route.params.type.name}}
   </div>    
</template>

<script>
export default {
    name: "master",
    data(){
        return{

        }
    }
}
</script>

<style>

</style>

componest–>pages:里面是一些二级导航


    <template>
    <div>
        11111    
    </div>    
    </template>

    <script>

    export default {
        name: "one",
        data(){
            return{

            }
        }

    }
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值