(一)基础介绍

  • vue-router用来构建SPA
  • <router-link></router-link>或者this.$router.push({path:' '})
  • <router-view></router-view>
  • 什么是前端路由?
    • 路由是根据不同url地址展示不同的内容或页面
    • 前端路由就是把不同路由对应不同的内容或页面的任务交给前端来做,之前是通过服务端根据url的不同返回不同的页面实现的
  • 什么时候使用前端路由?
    • 在单页面应用,大部分页面结构不变,只改变部分内容的使用
  • 前端路由的优缺点:
    • 优点:

      • 用户体验好,不用每次都从服务器全部获取,可以快速展现给用户
    • 缺点:
      • 不利于SEO
      • 使用浏览器的前进/后退键时会重新发送请求,没有合理地利用缓存
      • 单页面无法记住之前滚动的位置,无法在前进/后退时记住滚动的位置

(二)分类

  • 动态路由匹配
  • 嵌套路由
  • 编程式路由
  • 命名路由和命名视图(很少用)

(三)动态路由

模式 匹配路径 $router.params
 /user/:username  /user/evan { username:'evan' }
 /user/:username/post/:post_id   /user/even/post/123  { username:'evan',post_id:123 }
//index.js中
import Vue from 'vue'
import Router from 'vue-router'
import GoodsList from './../views/GoodsList'//从某路径引入组件 Vue.use(Router) export default new Router({
router:[
{
path:'/goods/:goodsId/user/:name',//通过此path访问组件内容
name:'GoodsList',
component:GoodsList
}
]
})
//组件间传参,组件中写$router.params.goodsId $router.params.name

(四)嵌套路由

  • 路由嵌套路由
//index.js中
import Vue from 'vue'
import Router from 'vue-router'
import GoodsList from './../views/GoodsList'//从某路径引入组件
import Goods1 from './../views/Goods1'//从某路径引入子组件
import Goods2 from './../views/Goods2' Vue.use(Router) export default new Router({
router:[
{
path:'/goods',
name:'GoodsList',
component:GoodsList,
children:[
{
path:'goods1',
name:'goods1',
component:Goods1
},
{
path:'goods2',
name:'goods2',
component:Goods2
},
]
}
]
}) //组件GoodsList中引入子组件Goods1和Goods2
<template>
<div>
<span>{{$router.params.goodsId}}</span>
<span>{{$router.params.name}}</span>
<router-link to="/goods/goods1"></router-link>
<router-link to="/goods/goods2"></router-link>
<div>
<router-view></router-view>
</div>
</div>
</template>

(五)编程式路由

  • 通过js来实现页面跳转

    • $router.push("name")
    • $router.push({path:"name"})
    • $router.push({path:"name?a=123"})或者$router.push({path:"name",query:{a=123}})
    • $router.go(1)
//index.js中
import Vue from 'vue'
import Router from 'vue-router'
import GoodsList from './../views/GoodsList'//从某路径引入组件
import Car from './../views/Car'//从某路径引入子组件 Vue.use(Router) export default new Router({
router:[
{
path:'/goods',
name:'GoodsList',
component:GoodsList,
{
path:'/car',
component:Car
}
}
]
}) //组件GoodsList.vue中
<template>
<div>
<div>
<router-view></router-view>
</div>
<router-link to="/car"></router-link>
<button @click="jump"></router-link>
</div>
</template>
<script>
export default{
data(){
return{
msg:'hello vue'
}
},
methods:{
jump(){
this.$router.push({path:'/car?goodsId=123'});//可以跳转页面...go...
}
}
}
</script> //组件Car.vue中
<template>
<div>
<span>{{$router.query.goodsId}}</span>//页面间传参
</div>
</template>
<script>
export default{
data(){
return{
msg:'hello vue'
}
}
}
</script>

(六)命名路由和命名视图

  • 给路由定义不同的名字,根据名字进行匹配
  • 给不同的router-view定义名字,通过名字进行对应组件的渲染

Vue:(三)路由的更多相关文章

  1. vue嵌套路由-query传递参数(三)

    在嵌套路由中我们经常会遇到父路由向子路由里面传递参数,传递参数有两种方法,通过 query 或者 params index.html <div id="app"> &l ...

  2. 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI

    一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...

  3. Vue.js路由

    有时候,我们在用vue的时候会有这样的需求,比如一个管理系统,点了左边的菜单栏,右边跳转到一个新的页面中,而且刷新的时候还会停留在原来打开的页面. 又或者,一个页面中几个不同的画面来回点击切换,这两种 ...

  4. Vue.js路由详解

    有时候,我们在用vue的时候会有这样的需求,比如一个管理系统,点了左边的菜单栏,右边跳转到一个新的页面中,而且刷新的时候还会停留在原来打开的页面. 又或者,一个页面中几个不同的画面来回点击切换,这两种 ...

  5. vue权限路由实现方式总结二

    之前已经写过一篇关于vue权限路由实现方式总结的文章,经过一段时间的踩坑和总结,下面说说目前我认为比较"完美"的一种方案:菜单与路由完全由后端提供. 菜单与路由完全由后端返回 这种 ...

  6. vue+element-ui路由配置相关

    vue+element-ui路由配置相关 转自:http://www.cnblogs.com/MonaSong/p/6703804.html vue-router2中说明了,子路由前面可以不加'/', ...

  7. vue嵌套路由 && 404重定向

    第一部分: vue嵌套路由 嵌套路由是什么? 嵌套路由就是在一个被路由过来的页面下可以继续使用路由,嵌套也就是路由中的路由的意思.  比如在vue中,我们如果不使用嵌套路由,那么只有一个<rou ...

  8. vue嵌套路由与404重定向实现方法分析

    第一部分: vue嵌套路由 嵌套路由是什么? 嵌套路由就是在一个被路由过来的页面下可以继续使用路由,嵌套也就是路由中的路由的意思. 比如在vue中,我们如果不使用嵌套路由,那么只有一个<rout ...

  9. vue的路由设置小结

    vue的路由设置小结 // 异步路由的编写示例.其中针对component字段进行懒加载及分块处理,提升首屏加载速度的同时,也可以手动控制让某些页面合并到一个单独的js文件中,而不是每个页面都是一个j ...

  10. vue的路由配置

    路由,其实就是指向的意思,当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击页面上的about 按钮,页面中就要显示about 的内容.Home按钮 => home 内容, ...

随机推荐

  1. Herriott池的设计

    0.矩阵法计算光路 1.谐振腔和透镜组的等效,计算x和x’ 2.近轴光路的近似计算和矩阵法. 3.相邻光线的角度 4.为啥分模式 5.椭圆模式 6.要考虑的其他问题,相邻光斑的干涉

  2. java_Arrays.sort()方法

    这个方法位于util包里,可以传入任一类型数组,默认按照字典序升序排序 如果要按照降序排序,直接写一个循环来颠倒顺序就好了 源码如下 String[] name = {"1",&q ...

  3. [daily][fedora][netctl][nmcli] 设置笔记本为台式机网关

    TAG:将一个网卡动态增减到网桥里的配置 场景是这样的. 我的笔记本无线网卡用来访问互联网.OS里面有一个birdge用来链接所有的虚拟机帮助虚拟机上网. 现在有了一台台式机.台式机用来做hyperv ...

  4. Improved GAN

    https://www.bilibili.com/video/av9770302/?p=16 从之前讲的basic gan延伸到unified framework,到WGAN 再到通过WGAN进行Ge ...

  5. MongoDB 备份(mongodump)与恢复(mongorestore)

    MongoDB  备份(mongodump)与恢复(mongorestore) 备份:使用mongodump命令导出所有数据库到指定目录 参数说明: --host:MongoDB所在服务器IP. -- ...

  6. 266B

    #include <stdio.h> #define MAXSIZE 1024 char que[MAXSIZE]; int main() { int n, t; scanf(" ...

  7. 131A

    #include <stdio.h> #include <string.h> #include <stdbool.h> #define MAXSIZE 105 in ...

  8. ionic 需要注意的知识点

  9. 高并发架构系列:MQ消息队列的12点核心原理总结

    消息队列已经逐渐成为分布式应用场景.内部通信.以及秒杀等高并发业务场景的核心手段,它具有低耦合.可靠投递.广播.流量控制.最终一致性 等一系列功能. 无论是 RabbitMQ.RocketMQ.Act ...

  10. html5 javascript 事件练习3随机键盘

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...