23.Vue Router路由基本使用

  vue Router路由组件是vue的核心组件;
  平时我们通过路由组件来实现导航菜单以及各种页面切换;

  vue Router路由组件安装;
  我们用vue-cli初始化的时候,可以选择添加vue Router;
  也可以单独 执行 npm install vue-router --save 来安装;
  我们首先建两个目录 router和pages,分别放路由路由模块配置文件和组件文件
23.Vue Router路由基本使用
  再建两个组件Index.vue和Menu1.vue;
  Index.vue

<template>
  <div>
    Index首页
  </div>
</template>

<script>
    export default {
        name: "Index"
    }
</script>

<style scoped>

</style>

  Menu1.vue

<template>
  <div>
    菜单一
  </div>
</template>

<script>
    export default {
        name: "Menu1"
    }
</script>

<style scoped>

</style>

  router下建个路由配置文件index.js

/*
路由器模块
 */
import Vue from 'vue'
import VueRouter from 'vue-router'

import Index from '../pages/Index'
import Menu1 from '../pages/Menu1'

Vue.use(VueRouter)

export default new VueRouter({
  // 多个路由
  routes:[
    {
      path:'/index',
      component:Index
    },
    {
      path:'/menu1',
      component:Menu1
    }
  ]
})

  main.js

/*
入口js:创建Vue实例
 */
import Vue from 'vue'
import App from './App'
import router from './router'
new Vue({
  el:'#app',
  components:{
    App
  },
  template:'<App/>',
  router
})

  App.vue里:

<template>
  <div>
    <div class="menu">
      <ul>
        <li>
          <!--<a href="">首页</a>-->
          <router-link to="/index">首页</router-link>
        </li>
        <li>
          <!--<a href="">菜单1</a>-->
          <router-link to="/menu1">菜单1</router-link>
        </li>
      </ul>
    </div>
    <div class="content">
      <router-view></router-view>
    </div>
  </div>
</template>

<script>
  export default {
    name: 'App',
  }
</script>

<style scoped>

  ul li{
    float:left;
    padding-left: 20px;
    list-style-type: none;
  }

  ul li a{
    text-decoration: none;
  }

  .content{
    clear: both;
    padding: 20px;
  }
</style>

  router-link 里配置请求路由,通过路由配置,找到响应组件;
  router-view里显示组件内容;
23.Vue Router路由基本使用
  不过两个问题,没有默认显示页面页面;
  我们配置下路由,默认显示下首页内容;
  index.js修改下:

/*
路由器模块
 */
import Vue from 'vue'
import VueRouter from 'vue-router'

import Index from '../pages/Index'
import Menu1 from '../pages/Menu1'

Vue.use(VueRouter)

export default new VueRouter({
  // 多个路由
  routes:[
    {
      path:'/index',
      component:Index
    },
    {
      path:'/menu1',
      component:Menu1
    },
    {
      //默认访问
      path:'/',
      redirect:'/index'
    }
  ]
})

  这样的话 默认首页 就会跳转到index请求;
  还有一个,我们加个需求,点击的菜单,显示红色;
  我们看下
23.Vue Router路由基本使用
  选中的时候多了两个样式 router-link-exact-active router-link-active
  我们可以给router-link-active 这个动态样式 加个color:red属性即可;
  直接index.html里加:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>vue_demo</title>
    <style>
     /* 菜单颜色*/
      .router-link-active{
        color: red;
      }
    </style>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

  效果:
23.Vue Router路由基本使用

上一篇:递归生成树形结构菜单


下一篇:对路由的说明(六)