vue2.0一起在懵逼的海洋里越陷越深(三)

承接上文vue2.0一起在懵逼的海洋里越陷越深(二)
前面写了vue-router组件的初步用法,原来这次想写vuex的,但是想想还是先继续把vue-router写完吧🤔

上回说到: vue-router的基本用法,下面继续深入

啊不!是继续向着懵逼海洋的海底继续下沉,哈哈哈哈
前面已经设置了两个路由,一个是首页,一个是文章页,现在在开一个演示页的路由
首页以后顶多就展示下大致的新内容,文章页顶多放放文章详情
这演示页可就厉害了,接下来的一些演示都会放在这里,具体的布局还没想好,先这么用着吧!

vue-router的超链接标签“router-link”

在vue1.0版本的超链接标签还是原来的a标签,链接地址由v-link属性控制(具体的这里也不多说了,vue1.0已经过去啦)
而vue2.0版本里超链接标签由a标签被替换成了router-link标签,当然,没有必要不用担心什么,因为最后没有什么特殊的设置的话,router-link标签还是会被渲染成a标签的。
至于为什么在vue2.0的时候被替换成了router-link标签呢?
大致YY了下,部分情节应该是这样的:

  • 最主要情况,在上个版本中,链接只能以a标签的形式存在,不能满足一些特殊的要求,比如在列表(ul>li)下,你需要为在里下面再加上一个a链接才能完成点击列表跳转页面,so2.0版本中路由从a标签变成了可以任意渲染成各种元素的router-link标签,如此一来,就可以直接渲染成li标签,省下了a标签(具体怎么做下面会统一说明)
  • 为什么不直接使用正常a标签写法做链接跳转呢?当点击正常的a链接时,就会感觉到页面跳转时的页面刷新重载的感觉,因为这个a标签并没有被vue-router所监听到事件的触发,所以就会发生正常的页面跳转,所以页面就会重载。那是传统的网页上才会发生的事。使用了vue-router组件所提供的router-link后,页面内的a标签就会被vue所监听,以便在用户点击链接的时候阻止浏览器的默认跳转行为,而转为无刷新加载的方式。当然这只作用于自己的站点内。

“router-link”标签的属性(Props)

没错,只要是标签,多多少少都是有属性的,最次class和id属性也是可以添加的。
下面说说router-link标签的各个属性

“to”属性

to属性最简单的用法就是如a标签里的href属性一样的填写,简单粗暴,想去哪就去哪。
其实,to属性的值可以有两种:

** 其一为字符串形式,也就是前面说到的如href一样的用法 **

<!-- 字符串 -->
<router-link :to="/article">Article</router-link>
<!-- 渲染结果 -->
<a href="/article">Article</a>

** 其二为对象形式,下面看看to属性的 对象的主要结构 **

// 主要结构
{
  name: 'Article'
}
  // 或者
{
  path: '/article'
}
// 二者选其中之一,如果两种都使用,那么vue会选择使用name字段
// eg
{
  name: 'Article',
  path: '/demo'
}
// 实际效果等同于:
{
  name: 'Article'
}

对于里面的path字段,其实就是就是想去哪就去哪的to属性字符串的对象形式
至于name字段,是不是会有些懵逼?这个name其实就是上一篇里说到的routes.js文件里的name字段啦!
就是这个!填成一样的就好啦!注意大小写哦

routes.js-name字段

** to属性的 对象的可选结构 **

{
  name: 'Article', // 与path字段二选一
  path: '/article', // 与name字段二选一
  params: { // 可选字段 隐性的传递参数(多用来页面传参)
    userId: 123 // 传递的参数demo
  },
  query: { // 可选字段 查询参数,就是url里‘?’之后的部分
    plan: 'private' // 查询参数demo
  }
}

可以使用chrome插件vue.js devtools来查看vue的路由的params参数,安装这个插件需要翻墙下载
或者可以去github上下代码编译插件,如果觉得麻烦也可以百度去其他网站下
对于可选参数是不是会有些懵,下面贴几张图就明白了

查看路由参数

其中params是隐性传递,query是显性传递。
路由query

红框部分就是传递的query

“replace”属性

顾名思义,replace是替换的意思,所以在router-link标签添加了这个属性后,页面切换时不会留下历史记录

<router-link :to="{ path: '/abc'}" replace></router-link>

“append”属性

append会把当前路径设置为相对路径,何为相对路径?比如你当前在vue2.leenty.com/demo下,点击这个链接<router-link :to="{ path: 'article'}" append></router-link>,如果没带append属性,那么就会跳到vue2.leenty.com/article下(hash模式下是vue2.leenty.com/#/article),而现在却是跳到了vue2.leenty.com/demo/article下。这个属性用处不是很大,在特殊情况下才会用到。
推荐还是把自己地址写全,不要使用相对地址,这样容易搞错
另外加个小技巧,在地址前加/能保证是跳转根目录的

“tag”属性

具有tag属性的的router-link标签会被渲染为相应的标签

<router-link :to="/article" tag="li">article</router-link>

将会被渲染为

<li>article</li>

这里不需要担心li的跳转问题,vue会自动为其绑定点击事件,并跳转页面

“active-class”属性

这个属性如字面意思上说的,是设置激活链接时的class属性
即是当前页面所有与当前地址所匹配的链接都会被添加这个class属性

<router-link :to="/article" active-class="u-link--Active">article</router-link>

如此,在vue2.leenty.com/article页面下(hash模式下是vue2.leenty.com/#/article)就会被渲染为

<a href="/article" class="u-link--Active"></a>

active-class属性的默认值是router-link-active,所以如果没有设置,就会被渲染为这个class

其实在上一章节有说到统一的设置这个active-class属性
打开router.js文件就能看到

const router = new VueRouter({
  mode: 'hash',
  linkActiveClass: 'u-link--Active', // 这是链接激活时的class
  routes
})

“exact”属性

开启router-link的严格模式

<router-link :to="/" exact>home</router-link>

上面这个标签如果不加exact属性,则会在vue2.leenty.com/article页面下也会被匹配到,
这却不是我们的本意,在加了这个属性后就会正确的匹配到vue2.leenty.com

以上为vue-router的router-link的介绍

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容