美文网首页
router(History,hash)前端路由机制

router(History,hash)前端路由机制

作者: 小棋子js | 来源:发表于2019-12-10 14:42 被阅读0次

前端路由机制
前端路由,顾名思义就是一个前端不同页面的状态管理器,可以不向后台发送请求而直接通过前端技术实现多个页面的效果。

前端路由机制原理及两种实现方式
一、History
History 接口允许操作浏览器的曾经在标签页或者框架里访问的会话历史记录。
用户访问网页的历史记录通常会被保存在一个类似于栈对象中,即history对象:

history 对象包含用户(在浏览器窗口)访问过的url
history对象是window对象的一部分,可以通过window.history属性进行访问。
基本的API用法如back、forward、go不做多解释,可以参考MDN
重点解释html5新增的API:
1、history.pushState() //在history对象中添加一条新的浏览记录
2、History.replaceState() // 是替换history中的当前记录
3、history.state //是一个属性,可以得到当前页的state信息。
4、window.onpopstate //是一个事件,在点击浏览器后退按钮或js调用forward()、back()、go()时触发。
(和它相似的一个方法叫做onhashchange,onhashchange是老API, 浏览器支持度高, 本来是用来监
听hash变化的, 但可以被利用来做客户端前进和后退事件的监听,onpopstate是专门用来监听浏览器
前进后退的, 不仅可以支持hash, 非hash的同源url也支持。)

history.pushState与History.replaceState的区别
history.pushState和History.replaceState都接收三个参数:即(data[,title][,url])
状态对象(state Object):一个object,与pushState方法创建的新历史记录条目关联。
标题:一般传null
地址(url):新的历史记录条目的地址。
pushState和replaceState都会操作浏览器的历史记录,并且不会引起页面的刷新。
不同之处在与:一个新增,一个替换。
History 模式是 HTML5 新推出的功能,比之 Hash URL 更加美观

history.png

一、hash
我们经常看到在url中出现#符号,这个在路由中出现的#,叫做hash,很多大型框架的路由系统都是由hash实现的。
上面提到一个方法onhashchange事件,用来监听hash变化,也可以被利用来做客户端前进和后退事件的监听。


hash.png

相关文章

  • router(History,hash)前端路由机制

    前端路由机制前端路由,顾名思义就是一个前端不同页面的状态管理器,可以不向后台发送请求而直接通过前端技术实现多个页面...

  • Vue-router 中hash模式和history模式

    【前端路由】Vue-router 中hash模式和history模式的区别 hash模式url里面永远带着#号,我...

  • Vue路由模式

    为了构架单页面应用,需要引入前端的路由系统Vue-router。 路由有两种模式:hash、history,默认会...

  • vue-router 使用

    vue-router主要是前端路由,做spa应用使用的。可以使用location.hash history.pus...

  • Vue的两种路由模式

    在vue-router路由对象中,路由有两种模式:hash和history,而默认的是hash模式. hash路由...

  • 2019-06-23 Vue-Router中history与ha

    hash前端路由,无刷新history 会去请求接口 vue-router提供两种模式的原因: vue 是渐进...

  • vue-router的两种模式

    vue-router两种模式,hash,history 为了构建SPA(单页面应用),需要引入前端路由系统,这就是...

  • 【源码】vue-rotuer1 原理

    大纲hash路由history路由vue-router简单实现vue中的数组,对象添加属性的监听 (1)Hash ...

  • Vue的两种路由模式

    在vue-router路由对象中,路由有两种模式: hash 和 history,而默认的是hash模式,hash...

  • 如何吃透 vue-router

    vue-router 是vue的插件,是对 vue的前端路由管理器,使用中通常分为hash 与 history模式...

网友评论

      本文标题:router(History,hash)前端路由机制

      本文链接:https://www.haomeiwen.com/subject/docggctx.html