路由

作者: cj_jax | 来源:发表于2019-01-04 23:38 被阅读0次

    认识路由

    什么是路由

    ​ 路由是一套完成映射规则

    路由的基本使用
    使用的步骤

    ​ 1.首先引入vue-router.js文件 记住,先引入vue.js文件

    ​ 2.然后创建 两个 组件,分别用const 接收一下,否则无法绑定到路由上

    ​ 3.在组件中写好模板内容

    ​ 4.在#app内创建路由的入口和路由的出口 路由入口的作用?和路由出口的作用

    ​ 5.创建路由 设置配置项 moutes

    ​ 6.配置项是数组,每个配置项是一个对象,对象中有两个属性,path和component

    ​ 7.在vue的实例中绑定路由(很重要)

    //html
    <div id="app">
        <!-- 指定路由入口: -->
        <ul>
            <!-- to属性 和 路由规则中的 path 相匹配 -->
            <li><router-link to="/home">首页</router-link></li>
            <li><router-link to="/about">关于</router-link></li>
        </ul>
    
        <!-- 指定路由出口: -->
        <router-view></router-view>
    </div>
    
    //js
     // 注册home组件
          const Home = Vue.component('home', {
            template: `
              <div>这是 Home 组件</div>
            `
          })
          // 快速简洁的注册组件:
          const About = {
            template: `
              <h2>这是 About 组件</h2>
            `
          }
          const router = new VueRouter({
            // 通过该配置配置路由规则
            routes: [
              // 每一个路由规则都是一个对象
              // path 表示路由规则的路径,不要带有#
              // component 用来指定展示的内容,是一个组件
              { path: '/home', component: Home },
              { path: '/about', component: About }
            ]
          })
          const vm = new Vue({
            el: '#app',
            data: {},
            // 将路由实例与Vue实例关联到一起
            router
          })
    
    
    部分参数说明:

    1.router-link

    ​ 路由的入口函数,

    2.router-link 中的to

    ​ to属性的作用:o属性 和 路由规则中的 path 相匹配

    3.router-view

    ​ 路由的出口函数,作用是是将对应的功能渲染在这个位置中

    4.routes中的配置项 path和 component

    ​ path 表示路由规则的路径,不要带有#

    ​ component 用来指定展示的内容,是一个组件

    5.路由中的默认路由:/ 和路由的重定向属性

    ​ 默认路由: /

    ​ 路由的重定向:redirect : '/home'

     { path: '/', redirect: '/home' },
    

    6.精确匹配 exact

    ​ 用于精确匹配路由,添加类名,对于路由的选择没有影响

    ​ 默认,没有 exact 属性的时候,高亮类名添加的方式是模糊匹配,只要 哈希值中包含了 to 属性的值,那么,这个 router-link 就会被添加高亮类名

    ​ 注意:精确匹配和模糊匹配只对添加 样式名称 有效, 对路由的匹配规则无效!!!

    7.路由参数

    ​ 采用动态路由匹配符合条件的哈希值

    ​ 例如匹配项为: /news/:id

     { path: '/news/:id', component: NewsInfo }
    

    ​ 能够匹配的哈希值为:

    ​ /news/1 或 /news/2 或 /news/abc

    ​ 不能匹配的哈希值为:

    ​ /abc 或 /news 或 /news/1/a

    路由的高亮效果

    实现的原理:router-link 会给当前匹配的 导航菜单(路由入口) 添加高亮的类名, 如果要使用第三方的样式库(比如:bootstrp),此时,可以在路由中添加 linkActiveClass 配置项,来将默认的高亮类名修改为 样式库 中对应的高亮类名,这样,路由就可以配合 样式库 来使用了

    自定义高亮类名:

    ​ linkActiveClass: 'itcast',

    ​ linkExactActiveClass: 'my-itcast'

    js中获取路由的参数

    ​ 当/new/1切换到/new/2的时候,渲染同一个组件,vue就会复用这个组件,这样做的目的是性能更高。

    缺点:由于第一次渲染的时候钩子函数会执行,通过地址栏的切换,vue复用组件不会再次执行created()钩子函数

    解决的方法:使用watch监听路由的变化

    $route(to, from) {
        console.log('路由参数为:', to.params.id)
     }
    

    补充说明:

    ​ 例如:/new/1切换到/new/2

    ​ to指的是: /new/2

    ​ from指的是:/new/1

    ​ to.params.id指的是获取到的路由的参数

    应用场景:

    ​ 需要根据路由的参数,渲染对应的内容

    相关文章

      网友评论

          本文标题:路由

          本文链接:https://www.haomeiwen.com/subject/aoplrqtx.html