Vue-Router 学习笔记
1:当router-link组件默认渲染成一个a标签,通过to属性指定目标地址,当对应的路由匹配成功,会自动给激活的标签设置class属性值
API
1:to:表示目标路由的链接,当被点击时,内部会立刻把to的值传到router,push(),
2:replace 设置的话,调用的是router.replace() 而不是router.push()的方法
(区别在于一个会往路由history当中添加记录,一个不会)
3:append 是否在当前路径后面添加路径
(例如,我们从 /a 导航到一个相对路径 b,如果没有配置 append,则路径为 /b,如果配了,则为 /a/b)
4:默认是渲染是a标签,通过tag设置渲染成其他的标签,同样它还是会触发点击,触发导航
(默认样式下 a标签会有一些特殊的样式)
5:active-class,目标激活不是会添加一个class嘛,默认是router-link-active,通过这个可以设置,默认值可以通过路由的构造选项 linkActiveClass 来全局配置
2:router-link对应的路由(看他对应的那个组件),那么他所指向的组件将会渲染到他对应的组件中 router-view
理解:router-link的to属性会指定一个路径,我们需要确认这个路径所对应的是哪一个组件(或者称为区域),那么路由定义里面路径所对应的组件就会渲染到这个区域内的router-view
注意:<router-view>组件是一个functional组件,功能:渲染路径匹配到的视图组件
3:嵌套路由:如果路径为空,会放入默认的路由对应的组件,子路由同理,如果想渲染子路由,可以提供一个空的子路由
routes: [
{
path:'/',
component:XQNindex,
name:'index',
children:[{
path:'',
component:testa
},{
path:'only',
component:testc
}]
}
]
//默认渲染XQNindex这个组件,同时XQNindex组件当中也存在router-view,也会渲染testa
4:编程式导航
this.$router.push(location,onComplete?,onAbort?) 可选的参数,导航完成或者导航终止调用
1:导航到不同的url:this.$router.push(),该方法会向history栈添加一个新的记录
2:this.$router.replace(),他不会向history添加新的记录,而是替换掉当前的history, 注意:router-link 也有这个属性
3:this.$router.go()向前或者向后多少步 router.go(1) == history.forward() router.go(-1) == history.back()
5:命名路由,给每一个路由添加一个名字
优点:我们使用router-link或者router.push()的时候,直接直接通过名字来调用或者跳转,特别是当你的路由等级太多的时候
export default new Router({
routes: [
{
path:'/',
component:XQNindex,
name:'index', },
//我的主页
{
path:'/mynews',
component:XQNmynews,
name:'mynews',
},
//梦岛广场
{
path:'/square',
component:XQNsquare,
name:'square',
},
//同人站
{
path:'/fans',
component:XQNfans,
name:'fans',
redirect:'/',
},
]
})
//每个路由地址都有一个名字,我们使用router-link的时候,就可以名称来跳转
6:命名视图:解决了在一个组件中同时展示多个路由,如果 router-view 没有设置名字,那么默认为 default
1:一个视图同时只能渲染一个组件,因此对于同个路由,多个视图就需要使用多个组件,那么定义路由的时候要使用components
<router-view class="view one"></router-view>
<router-view class="view two" name="a"></router-view>
<router-view class="view three" name="b"></router-view>
const router = new VueRouter({
routes: [
{
path: '/',
components: {
default: Foo,
a: Bar,
b: Baz
}
}
]
})
注解:router-view就是试图,'/'就是路由
7:嵌套命名视图,XQNmynews组件里面使用了三个router-view,他的子组件将渲染到里面去,同时渲染多个子组件的情况,使用命名视图,没有名称的使用default
{
path:'/mynews',
component:XQNmynews,
name:'mynews',
children:[{
path:'',
components:{
default:testa,
b:testb,
c:testc
}
},{
path:'only',
component:testc
}]
},
8:重定向和别名
重定向的目标
1:路径:{ path: '/a', redirect: '/b' } 当路径指向/a 的时候将他重新指向/b,
2:命名路由: { path: '/a', redirect: { name: 'foo' }} foo是一个命名的路由...待续
3:优点: 别名:/a 的别名是 /b,意味着,当用户访问 /b 时,URL 会保持为 /b,但是路由匹配则为 /a,就像用户访问 /a 一样
const router = new VueRouter({
routes: [
{ path: '/a', component: A, alias: '/b' }
]
})
优点:待续....
9:路由优先级
谁先定义,谁的级别就更高
routes:[
{path:'/hello',component:hello},
{path:'/hello',component:hello1}
]
10:vue-router实例选项
routes[{RouteConfig}]
重点:RouteConfig的配置
declare type RouteConfig = {
path: string;
component?: Component;
name?: string; // 命名路由
components?: { [name: string]: Component }; // 命名视图组件
redirect?: string | Location | Function;
props?: boolean | string | Function;
alias?: string | Array<string>;
children?: Array<RouteConfig>; // 嵌套路由
beforeEnter?: (to: Route, from: Route, next: Function) => void;
meta?: any;
// 2.6.0+
caseSensitive?: boolean; // 匹配规则是否大小写敏感?(默认值:false)
pathToRegexpOptions?: Object; // 编译正则的选项
}
注解:创建Router的实例时候,可以传入多个选项,其中router是一个数组对象,每一项是一个路由地址,包含上面的属性和含义
Vue-Router 学习笔记的更多相关文章
- Vue Router学习笔记
前端的路由:一个地址对应一个组件 Vue Router中文文档 一.路由基本使用 第1步:导入Vue Router: <script src="https://unpkg.com/vu ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- vue.js 学习笔记3——TypeScript
目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...
- Vue.js学习笔记:在元素 和 template 中使用 v-if 指令
f 指令 语法比较简单,直接上代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " ...
- Vue 新手学习笔记:vue-element-admin 之安装,配置及入门开发
所属专栏: Vue 开发学习进步 说实话都是逼出来的,对于前端没干过ES6都不会的人,vue视频也就看了基础的一些但没办法,接下来做微服务架构,前端就用 vue,这块你负责....说多了都是泪,脚手架 ...
- vue视频学习笔记06
video 6 vue动画vue路由--------------------------------------transition 之前 属性<p transition="fade& ...
- vue视频学习笔记
video 7 vue问题: 论坛 http://bbs.zhinengshe.com------------------------------------------------UI组件 别人提供 ...
- vue之router学习笔记
1.动态路由匹配 我们经常需要将具有给定模式的路线映射到同一个组件.例如,我们可能有一个User应该为所有用户呈现但具有不同用户ID的组件.在vue-router我们可以在路径中使用动态段以实现: c ...
- vue.js学习笔记(一)——vue-cli项目的目录结构
vue.js是一套构建用户界面的渐进式框架.vue采用自底向上增量开发的设计.vue的核心库只关心视图层,非常容易学习,非常容易与其它库和已有项目整合.vue完全有能力驱动采用单文件组件和vue生态系 ...
- 饿了么vue实现学习笔记
技术栈:vue2 + vuex + vue-router + webpack + ES6/7 + fetch + sass + flex + svg以功能实现着手学习1. 定位功能 home.vue ...
随机推荐
- SQL Server 2016 Failover Cluster + ALwaysOn
SQL Server 2016 Failover Cluster + ALwaysOn 环境的搭建 近期公司为了提高服务的可用性,就想到了部署AlwaysOn,之前的环境只是部署了SQL Server ...
- hdu3949 异或空间 + 求矩阵的主元
给定n个整数,将数分解成01序列,由这n个01序列构成矩阵,这n个数构成线性空间,这就是异或空间 将这个矩阵高斯消元,求出t个主元,那么由着t个主元构成的线性空间里总共有2^t个数 设这t个数分别是a ...
- hdu3635
/* 一开始第a个球在第a个城市 操作T a b,把第a个球所在城市的所有球移到b所在的城市 操作Q a 要求输出 第a个球在哪个城市 第a个球所在的城市有几个球 第a个球移动次数 */ #inclu ...
- noip 2018游记
憋了好久的游记... 考虑到写游记是oi界的传统,所以还是应该写一篇的. day0: 上午9:30的火车出发,车上颓三国杀! 中午12:00到了大连,下午2:00才开始试机,还是得先去大连大学,在食堂 ...
- 性能测试四十一:sql案例之慢sql配置、执行计划和索引
MYSQL 慢查询使用方法MYSQL慢查询介绍分析MySQL语句查询性能的问题时候,可以在MySQL记录中查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”.MYSQL自带的慢查 ...
- php模拟数据请求
php:模拟后台接受数据的步骤<?php> 1.连接数据库 $host="localhost"; $uname="root"; $upwd=&quo ...
- oracle 12c ORA-01017:invalid username/password; logon denied
Oracle 12C 中,想通过操作系统认证登录Oracle 数据库,有一些要注意的地方.不然就会遇到 ORA-01017:invalid username/password; logon denie ...
- 51 nod 1212 无向图最小生成树(Kruckal算法/Prime算法图解)
1212 无向图最小生成树 N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树. 收起 输入 第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量.(2 <= N < ...
- RSA 非对称加密【转】
演示代码:https://pan.baidu.com/s/10rfSUUDEEHvCDEYH0oEVCw Base64工具类,可以让rsa编码的乱码变成一串字符序列 1 package com.uti ...
- CDOJ 1960 构造哈密顿路径
题意: 给定n个点的有向完全图,希望通过其中n-1条边将n个点串起来(2<=n<=1000) 欧拉路径:经过所有边且只经过一次 哈密顿路径:经过所有点且只经过一次 思路: 本题条件特殊,有 ...