一、Vue-router是什么?

  Vue Router是Vue.js的路由管理器。和Vue.js的核心深度集成,是SPA单页应用的路径管理器,适合用于构建单页面应用。Vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来;传统的页面应用,是用一些超链接来实现页面切换和跳转的;在Vue-router单页应用中,则是路径之间的切换,也就是组件的切换。路由模块的本质 就是建立起url和页面之间的映射关系;

  实现原理:单一页面应用程序,只有一个完整的页面;它在加载页面时,不会加载整个页面,而只是更新某个指定的容器中的内容。核心是:更新视图而不重新请求页面;前端路由又两种方式;详情:https://www.cnblogs.com/xsk-walter/p/12663694.html

  Vue Router 的功能:官方文档:

    1:嵌套路由/视图;

    2:模块化的、基于组件的路由配置;

    3:路由参数、查询、通配符;

    4:基于Vue.js过渡系统的视图过渡效果;

    5:自定义的滚动条行为;

    6:H5的history模式和Hash模式

二、Vue-router的使用方式

  1:下载: npm install vue-router -S

  2:在main.js中引入:import VueRouter from 'vue-router'

  3:安装插件Vue.use(VueRouter)

  4:创建路由对象并配置路由:const router = new VueRouter({ routes: [ { path: '/home', component: Home } ] })

  5:将其路由对象传递给Vue的实例

  6:在入口文件中留坑:<router-view></router-view>

// 在main.js文件中引入
import Vue from 'vue'
import VueRouter from 'vue-router' // 安装插件
Vue.use(VueRouter) // 创建路由对象并配置路由规则
const router = new VueRouter({
routes: [{}]
}) // 启动
new Vue({
el: '#app',
router,
render: c => c(App)
}) // app.vue
<template>
<div id="app">
<router-view></router-view> // 留坑
</div>
</template>

三、基础

  1:动态路由匹配

    我们经常需要把某种模式匹配到所有的路由,全部映射到同个组件

const User = {
template: '<div>User</div>'
}
// 动态路由参数以冒号开头
const router = {
routes: [{ path: 'user/:id', component: User }]
}
// 像/user/123和/user/456都将映射到同一个路由;

  一个路径参数使用冒号标记,当匹配到一个路由时,参数值会被设置到this.$route.params,可以在每个组件内使用;

  其中$route对象还提供了其他有用的信息;

  ## 正则在url传值的作用:path: 'user/:id(\\d+)'  加入了正则,只能传递数字类型的id,否则组件接收不到;

  ## 注意:当使用路由参数时,从/user/123导航到user/456时,原来的组件实例会复用;此时组件的声明周期钩子就不会再被调用;复用组件时,相对路由参数的变化做出相应的话,你可以简单的watch监听$route对象或者导航守卫;

  ## 404页面设置和捕获所有路由:

// 设置404页面
{ path: '*', component: Error }
// 新建404页面
<template>
<div>
<h2>{{ msg }}</h2>
</div>
</template>
<script>
export default {
data () {
return {
msg: 'Error:404'
}
}
}
</script>
// 当路由不存在时,会进入到404页面

   ##如果想要匹配到任意路径:可以使用通配符*;当使用一个通配符时,$route.params 内会自动添加一个名为 pathMatch 参数。它包含了 URL 通过通配符被匹配的部分

  2:编程式和声明式导航 详情见:https://www.cnblogs.com/xsk-walter/p/12663615.html

  3:命名路由

    # 通过一个名称来标识一个路由显得很方便,特别是在链接一个路由或者执行一些跳转的时候;可以在创建router实例的时候,在routes配置中给某个路由设置名称; 

// 链接到一个路由
<router-link :to="{ name: 'user' , params: { userId: 123 }}">User</router-link>
// 编程式跳转
this.$router.push({ name: 'user', params: { userId: 123 } })
// 两种方式都会把路由导航到 /user/123

  4:路由组件传参

    # 三种模式: 布尔模式、对象模式和函数模式

    1:布尔模式:由于普通组件和路由组件传参形式不同,路由组件传参布尔模式需要在route中添加props:true,会把params中的键值对以props的形式传入组件中,使普通组件当做路由组件使用;

    ## 详细请参考:https://www.jianshu.com/p/a8d919283fec

  官方文档:https://router.vuejs.org/zh/

Vue的vue-router基本使用的更多相关文章

  1. Vue 组件之 Router

    Vue 组件之 Router Vue 开发单页应用的时候,免不了使用Vue组件.在单页应用上如何进行组件切换? 结构如下图所示: 主页面包含Foo组件与Bar组件,在主页面中可以进行Foo与 Bar的 ...

  2. vue路由请求 router

    创建一个Router.js文件 // 路由请求//声明一个常量设置路菜单// import Vue from "vue/types/index";import Vue from ' ...

  3. vue学习之router

    路由文档:https://router.vuejs.org/zh/guide/ 使用vue做spa应用的话,一定会涉及到路由. 安装 安装router插件 npm install vue-router ...

  4. vue学习之用 Vue.js + Vue Router 创建单页应用的几个步骤

    通过vue学习一:新建或打开vue项目,创建好项目后,接下来的操作为: src目录重新规划——>新建几个页面——>配置这几个页面的路由——>给根实例注入路由配置 src目录重整 在项 ...

  5. 六、vue路由Vue Router

    一.基本概念 route, routes, router 1, route,它是一条路由,由这个英文单词也可以看出来,它是单数, Home按钮  => home内容, 这是一条route,  a ...

  6. vue +ts 在router的路由中import报错的解决方案

    在router.ts中引入.vue文件,会提示打不到module,但是编译可能成功,运行也不报错 找了好久,发现了这个答案 https://segmentfault.com/a/11900000167 ...

  7. vue项目中router路由配置

    介绍 路由:控制组件之间的跳转,不会实现请求.不用页面刷新,直接跳转-切换组件>>> 安装 本地环境安装路由插件vue-router:    cnpm install vue-rou ...

  8. Vue的路由Router之导航钩子和元数据及匹配

    一.文件结构 二.vue.js 打开此链接 https://cdn.bootcss.com/vue/2.6.10/vue.js 复制粘贴页面的所有内容 三.vue-router.js 打开此链接  h ...

  9. vue路由--使用router.push进行路由跳转

    手机赚钱怎么赚,给大家推荐一个手机赚钱APP汇总平台:手指乐(http://www.szhile.com/),辛苦搬砖之余用闲余时间动动手指,就可以日赚数百元 route-link是在html中静态定 ...

  10. vue全家桶router、vuex、axios

    main.js import Vue from 'vue' import App from './App' import router from './router' import store fro ...

随机推荐

  1. weevely使用小结

    Weevely 写在前面 由于比赛不确定会不会提供菜刀或者蚁剑,这里我稍微对weevely进行简单介绍一下,具体还是请看官方文档,官方文档讲的很详细(前提你英语嘚不错) 官方文档:https://gi ...

  2. 序列化多表操作、请求与响应、视图组件(子类与拓展类)、继承GenericAPIView类重写接口

    今日内容概要 序列化多表操作 请求与相应 视图组件 内容详细 1.序列化多表操作 模型类 models.py中 # 新建django项目 # 创建表 模型类models.py中: from djang ...

  3. asp.net 可视化操作(二)——Sql数据库连接及简单查询功能的实现

    目录 连接数据库 利用repeater控件实现数据显示 查询功能 页面CSS美化 数据插入.更新-- 连接数据库 添加test.aspx 添加控件SqlDataSource,选择配置数据源 选择新建连 ...

  4. Kurento安装与入门02——运行示例前的准备

    官方一共提供了13个示例,这些示例运行的方式大同小异,一般会提供JAVA.Browser JavaScript.Node.js三种版本,这里仅演示java版本的示例.这些示例要求系统内已经正确安装了K ...

  5. H5本地存储:sessionStorage和localStorage

    作者:心叶时间:2018-05-01 18:30 H5提供了二种非常好用的本地存储方法:sessionStorage和localStorage,下面分别介绍一下: 1.sessionStorage:保 ...

  6. leetcode1753. 移除石子的最大得分

    题目描述: 你正在玩一个单人游戏,面前放置着大小分别为 a​​​​​​.b 和 c​​​​​​ 的 三堆 石子. 每回合你都要从两个 不同的非空堆 中取出一颗石子,并在得分上加 1 分.当存在 两个或 ...

  7. Spark入门之环境搭建

    本教程是虚拟机搭建Spark环境和用idea编写脚本 一.前提准备 需要已经有搭建好的虚拟机环境,具体见教程大数据学习之路又之从小白到用sqoop导出数据 - 我试试这个昵称好使不 - 博客园 (cn ...

  8. EMS已有用户分配邮箱方法

    案例任务:已有域用户"test100",为该用户分配邮箱. 分配邮箱前,使用"get-user"命令确认用户类型.域用户"test100"的 ...

  9. BootstrapBlazor实战 Chart 图表使用(1)

    BootstrapBlazor组件 Chart 图表介绍 通过给定数据,绘画各种图表的组件 本文主要介绍三种图表使用:折线图,柱状图,饼图 1.新建工程 新建工程b06chart,使用 nuget.o ...

  10. 调试了一个早上, 定位了一个chrome的新问题, 新版chrome 不能有效的追踪客户来源Referer了