Vue-router原理实现

1 .在每一次router的时候查看history的变化情况,验证发现,既有hash的变化,而且也可以使用history的api操作,而且也探测到了相关的变化。
2 .

hash实现

1 .检测a标签的hash实现--<a href="#1">1</a>
2 .明明只定义来了一个类,怎么还会有类似的栈的结构出现。查看一波数据结构的实现。好像是个链式结构,这是第二种思路

history实现

2 .

关键api

1 .this.$router访问当前的router
2 .在进行hover事件表现层的时候,尽量不要使用border事件,这样会重新进行布局,发生页面抖动。就是表现层可以发生替换,最好不要出现从无到有的东西
3 .

history实现

1 .window.history属性指向History对象,他表示当前窗口的浏览历史。
2 .由于安全原因,浏览器不允许脚本读取到这些地址,但是允许在地址之间导航。
3 .浏览器工具栏的“前进”和“后退”按钮,其实就是对history对象进行操作。
4 .移动到之前访问过的页面,通常是从浏览器缓存之中加载的,而不是重新要求服务器发送新的网页。而且直接输入地址的时候也是这样,不会触发页面更新,那么也不会发送http请求。
5 .导致的问题:如果直接输入url的话,后端没有对相应的url做处理,那么会得到404,但是hash路由可以直接输入定位到某个视图。

属性

1 .length:当前窗口访问过的网址数量
2 .state:history堆栈最上层的状态值

方法

1 .back()回到上一个网址
2 .forward()移动到下一个网址
3 .go(n):正数是往前走,负数是往后走
4 .pushState({4.1},'4.2','index.html') :用于popstate事件,该事件触发的时候,该对象会传入回调函数。浏览器会将这个对象序列化之后保留在本地,重新载入这个页面的时候,可以拿到这个对象,如果不需要这个对象,可以填null。4.2:页面的标题,所有浏览器都会忽略这个参数,所以这里可以填空字符串
5 .pushState不会触发页面刷新,只是会导致history对象发生变化,地址栏会有变化
6 .pushState是不能插入跨域网址的。
7 .replaceState():用该修改当前history对象的当前记录。

事件

1 .popstate事件:每当一个文档的浏览历史出现变化的时候,就会触发这个事件
2 .调用pushState()或者replaceState()方法都不会触发该事件,只有用户点击浏览器器按钮或者前进按钮,或者使用back,go,forward方法才会触发
3 .这个事件只针对同一个文档,如果浏览器历史的切换,导致加载不同的文档,这个事件也不会触发。
4 .window.addEventListener('popstate',(event)=>{conso.log(event)}):这个用法就相当于检测onhashchange那个的意思了。

this.$router

1 .VueRouter势力,导航到不同的URL,就需要这个

this.$route

2 .this.router的一个属性currentRoute就是this.route
1 .当前router跳转对象里面可以获取name,path,query,params

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

推荐阅读更多精彩内容

  • 前端开发面试题 <a name='preface'>前言</a> 只看问题点这里 看全部问题和答案点这里 本文由我...
    自you是敏感词阅读 783评论 0 3
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,762评论 25 708
  • 你是什么时候开始输不起的? 你是什么时候太把自己当回事儿的? 这是我最近经常问自己的一句话。 one. 大二上学期...
    A_Lis阅读 344评论 0 0
  • 离开家乡,告别父母,来到另一座城市,虽然已经在这里生活了一年,但是还是很陌生 ,陌生的地方,陌生的面孔,就...
    bullet666阅读 348评论 0 0
  • 俗话说“民以食为天”、“人是铁,饭是钢,一顿不吃饿得慌”,然而一到夏季大部分人 便没了食欲,所以夏天食物要以清补、...
    王公子说阅读 424评论 0 0