美文网首页Web前端之路
Vue教程(六)路由的使用

Vue教程(六)路由的使用

作者: 凌雲木 | 来源:发表于2018-04-23 20:33 被阅读116次

    一 路由的使用

    • 1下载vue-router
      https://unpkg.com/vue-router/...
      使用:直接引入
      <script src="vue.js"></script>
      <script src="vue-router.js"></script>

    • 2 安装npm包
      npm install vue-router
      使用:
      import Vue from 'vue'
      import Router from 'vue-router'
      Vue.use(VueRouter)

    二 路由的配置

    • 静态路由
    export default new Router({
      routes: [
      //静态路由
        {
          path: '/Home',    
          name: 'Home',
          component: Home
        },
        { path: '/About',
         name: 'About',
         component: About 
        }, 
        //重定向
        {path:'*',redirect:'/Home'},
       //动态路由
        { path: '/GuanYu/:id',
         name: 'GuanYu',
         component: GuanYu 
        },
      ]
    })
    
    

    html:

    <header class="header">
        <div class="header_inner">           
            <div class="header_cont"> 
                        <router-link to="/Home">主页</router-link>
                        <router-link to="/About">详情</router-link>
                        <router-link to="/GuanYu/1">关于1</router-link> 
                <router-link to="/GuanYu/2">关于2</router-link> 
                </div>
        </div>
    </header>
    

    < router-link > 默认会被渲染成一个 <a> 标签 >>>to=""为我们定义的路由
    < router-view > 路由匹配到的组件将渲染在这里

    • 动态路由
      我们经常需要把某种模式匹配到的所有路由,全都映射到同个组件。例如,我们有一个 关于的组件,对于所有 ID 各有不同的展示效果,都要使用这个组件来渲染。那么,我们可以在 vue-router 的路由路径中使用『动态路径参数』(dynamic segment)来达到这个效果:
      动态路径参数 以冒号开头
     { 
    path: '/GuanYu/:id',
         name: 'GuanYu',
         component: GuanYu 
      },
    

    <router-link to="/GuanYu/1">关于1</router-link>路由到id为1的组件
    <router-link to="/GuanYu/2">关于2</router-link> 路由到id为2的组件

    通过注入路由器,我们可以在任何组件内通过 this.$router 访问路由器,也可以通过 this.$route 访问当前路由:
    使用watch监视路由的变化:

       watch: {/
        '$route' (to, from) {
          // 对路由变化作出响应...  
          console.log("from:");
          console.log(from);//打印from:来源路由
          console.log("------------------------------------------------------------------------------");
          console.log("to:");
          console.log(to);//打印to:目标路由
          console.log("------------------------------------------------------------------------------");
          console.log(this.$route);
        }
       },
    
    

    在关于这个组件使用 $route.params.id 获取动态参数

    如:
    <div>User {{ $route.params.id }} </div>

    当路由 由<router-link to="/GuanYu/1">关于1</router-link>切换到 <router-link to="/GuanYu/2">关于2</router-link>时,会打印出如下图信息:

    • 嵌套路由
     { path: '/About',
         name: 'About',
         component: About ,
         //路由嵌套子路由
         children: [
          {
            path: 'attend',
            component: asd
          },
          {
            path: 'newattend',
            component: sdf
          }
        ]
      }
    

    还需在About组件的模板上加上<router-view>
    嵌套路由可以使用多个

    注意:在路径上加上‘/’表示从根目录开始跳转
    不加‘/’表示从当前页面进行跳转

    相关文章

      网友评论

        本文标题:Vue教程(六)路由的使用

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