(一)基础介绍

  • 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. PM2.5环境检测系统的设计与分析

    PM2.5环境检测系统的设计与分析   摘要: 大气颗粒物污染对人类健康和生态环境造成了很大的影响,这让人们逐渐重视起对细颗粒物PM2.5检测技术的研究.本文阐述了PM2.5浓度检测的五种方法,在对上 ...

  2. 【Android】快速开发偷懒必备(二) 支持DataBinding啦~爽炸,一行实现花式列表[申明:来源于网络]

    [Android]快速开发偷懒必备(二) 支持DataBinding啦~爽炸,一行实现花式列表[申明:来源于网络] 地址:http://blog.csdn.net/zxt0601/article/de ...

  3. C++的一些知识

    1.C++中非虚函数都是静态绑定,虚函数是动态绑定.指针或引用访问对象的虚函数时才能进行动态绑定. 静态多态性:编译时确定操作的对象.如:函数重载,运算符重载. 动态多态性:运行时确定操作的对象. 绑 ...

  4. WebH

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...

  5. jmeter录制https请求

    工具:Jmeter4.0 + Java1.8 需求:对某https网站进行 登录-修改信息-退出 场景的压力测试 方法:使用Apache JMeter HTTP(S) Test Script Reco ...

  6. javaweb(4)之Listener&Filter

    监听器 (Listener) 介绍 监听器用于监听 web 应用中某些对象.信息的创建.销毁.增加,修改,删除等动作的发生,然后作出相应的响应处理.当范围对象的状态发生变化的时候,服务器自动调用监听器 ...

  7. SpringMVC控制器方法参数传入的ModelMap 和Model类型有啥区别

    参考 http://blog.csdn.net/u013067598/article/details/69372309 http://blog.csdn.net/u013686993/article/ ...

  8. 五、UI开发之核心基础——约束(深入)

    概述 本节我们将较为理论的讲述约束,更准确的说法叫做“AutoLayout”.对于后续章节要学习的内容,本篇文章并非必须,如果你也像我当年一样正在被老板踢屁股赶进度的话,但可掠过本篇. 本篇内容旨在锦 ...

  9. 解决bootstrap 模态框 数据清除 验证清空

    $("#switchModel").on("hidden.bs.modal", function () { $('#ware-form')[0].reset() ...

  10. C#构造函数、私有构造函数、静态构造函数与构造函数执行顺序

    默认构造函数,如果没有为类指定任何构造函数,编译器会自动为类创建一个无参构造函数,用以初始化类的字段:如果为类编写了构造函数,那么编译器就不会再自动生成无参构造函数了.ps.C#不允许用户为结构定义无 ...