前置知识

在了解单页面应用的前端路由原理之前,我们先了解下什么事单页面应用,什么是多页面应用,他们之间的区别又是什么?

什么是单页面应用?

单页面应用指的是第一次进入页面的时候会请求一个html文件,切换到其他组件的时候,虽然路径会发生相应的变化,但是没有新的html文件请求,原理是JS会感知到url的变化,然后js会动态的将当前页面的内容清除掉,然后将下一个页面的内容挂载到当前的页面上,这个时候的路由不是由后端做的而是由前端来做的,来判断页面到底显示哪个组件,这个过程就是单页面的应用。

单页面应用的优缺点

优点:页面切换快:因为页面每次切换的时候,并不需要做html文件的请求,这样就减少了很多http发送的时延。

缺点:单页面应用的首屏加载时间比较慢,首屏加载需要一次HTML请求和一次JS请求,时间相对较慢,而且SEO效果差,因为搜索引擎只认识HTML中的内容,但是单页应用中的内容很多需要靠JS渲染出来,搜索引擎不识别这部分内容,就会导致SEO效果不好。

什么是多页面应用?

多页面应用指的是每一次页面跳转的时候,服务器都会返回一个新的HTML文档,这种类型的应用叫做多页应用。

多页面应用的优缺点

优点:首屏加载快,SEO效果好。因为客户端向服务端发送请求的时候,服务端只返回了一个HTML页面,所以加载比较快。

缺点:页面切花比较慢。

单页面应用和多页面应用的区别

  1. 应用构成不同

多页面应用是由多个不同的页面构成,单页面应用是一个外壳页面和多个页面片段构成。

  1. 页面跳转方式不同

多页面应用的页面跳转是从一个页面跳转到另一个页面,而单页面则是把一个页面片段删除或隐藏,加载另一个页面片段。

  1. 跳转后公共资源是否重新加载

跳转后多页面应用是需要进行重新加载的,但是单页面不需要重新加载。

  1. 用户体验不同

多页面应用首屏加载快但是且缓慢,单页面应用首屏加载慢但是切换快。

  1. 页面传递数据方式不同

多页面应用依靠URL、Cookie、LocalStorage来传递数据,单页面应用则是靠组件进行通信,相对更加简单。

前端路由的原理

前端路由的原理本质上就是在不刷新浏览器的请求下修改URL、检测URL的变化,截获URL的地址,通过解析、匹配路由规则从而实现UI的更新。路由的实现通常有两种形式一种是Hash模式,一种是History模式。

Hash路由的原理

在Hash模式下,url中#后面的部分表示的是一个客户端状态,当这部分发生变化的时候,浏览器本身就不会刷新,这样就满足了第一个条件,即在不刷新浏览器的情况下修改浏览器链接,同时通过监听hashChange事件来监听URL中hash值的变化,触发相关函数,改变相关组件。

History路由的原理

History模式利用了HTML5中history的API,history.pushState和history.replaceState这两个方法可以在不刷新页面的情况下,操作浏览器的历史记录,这样也就满足了第一个条件,然后通过监听popState事件来剪影URL的变化,从而触发相关函数,改变相关组件。

单页面应用的前端路由原理是什么?相关推荐

  1. 单页面应用(SPA)前端路由hash 模式 VS history 模式

    文章目录 单页面应用(SPA) 前端路由的由来 前端路由 hash 模式 history 模式 hash.history优缺点 单页面应用(SPA) 简单的说 SPA 就是一个WEB项目只有一个 HT ...

  2. 浅谈前端路由原理hash和history

    浅谈前端路由原理hash和history

  3. html5页面图片切换,HTML5单页面手势滑屏切换原理

    H5单页面手势滑屏切换是采用HTML5 触摸事件(Touch) 和 CSS3动画(Transform,Transition)来实现的,效果图如下所示,本文简单说一下其实现原理和主要思路. 1.实现原理 ...

  4. 【前端路由原理--原生JS实现方式】--前后端路由的区别、关于单页面应用与多页面应用、什么是CSR、SSR、SSG、ISP

    前言 本来只是想学习 React-Router v6 ,没有想到,带出了这么多东西.前后端路由有什么区别?SPA与MPA的是什么?在了解到前端路之后又发现单页面于应用与多页面应用的不同之处,以及 .n ...

  5. 父页面监听iframe路由变化_前端路由原理

    对于前端路由应该都很熟悉了,开发过spa应用的应该都用过,只是很少人去查一下前端路由实现的原理. 前端路由的实现核心问题有两个,一个是改变url不刷新,另一个是监听url变化.主要靠的就是hash和h ...

  6. react router 级联路由_前端路由原理解析和实现

    作者:@whinc链接:https://github.com/whinc/blog/issues/13 在单页应用如此流行的今天,曾经令人惊叹的前端路由已经成为各大框架的基础标配,每个框架都提供了强大 ...

  7. 令人惊叹的前端路由原理解析和实现方式

    在单页应用如此流行的今天,曾经令人惊叹的前端路由已经成为各大框架的基础标配,每个框架都提供了强大的路由功能,导致路由实现变的复杂.想要搞懂路由内部实现还是有些困难的,但是如果只想了解路由实现基本原理还 ...

  8. return view前端怎么获取_Web 前端路由原理解析和功能实现

    ↑ 点击上面 "时代Java"关注我们, 关注新技术,学习新知识! 什么是前端路由? 路由的概念来源于服务端,在服务端中路由描述的是 URL 与处理函数之间的映射关系. 在 Web ...

  9. reactrouter监听路由变化_一篇文章搞懂前端路由原理解析和实现方式

    在单页应用如此流行的今天,曾经令人惊叹的前端路由已经成为各大框架的基础标配,每个框架都提供了强大的路由功能,导致路由实现变的复杂. 想要搞懂路由内部实现还是有些困难的,但是如果只想了解路由实现基本原理 ...

最新文章

  1. 《JavaScript模式》精要
  2. java线程未执行完成,java线程测试-一个奇怪的景况-执行未完成直接结束了
  3. 苏州银行签约神策数据,致力打造科技引领的新时代普惠银行
  4. ActiveMQ BrokeUrl的配置和消息持久化配置
  5. 判断客户端是电脑还是手机
  6. 韩国政府计划从Windows 7迁移到Linux
  7. 手把手教你学node之搭建node.js开发环境
  8. Python机器学习:KNN算法之01KKN基础
  9. 500万人“动口”收蚂蚁森林能量!天猫精灵发布语音“云种树”报告
  10. 给爱设计的你,一个理由爱上(和使用)渐变素材的理由
  11. ZOJ 4028 15th浙江省省赛E. LIS(神奇贪心)
  12. This project references NuGet package(s) that are missing on this computer
  13. 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
  14. nginx 配置参数说明
  15. 用什么手机软件可测试无线信道,wifi信道
  16. 人人都是架构师?哪有那么容易
  17. 跟铁拐李李老师学习工作流的第二天
  18. Netty中使用WebSocket实现服务端与客户端的长连接通信发送消息
  19. 非标产品和标准产品的区别(关于3C)
  20. Mac OS X下的动态链接库

热门文章

  1. 数码管显示原理与驱动方式
  2. 为什么不考虑参观美国计算机博物馆呢英语,参观博物馆通知 visit the Science Museum notice...
  3. python panda是什么_python pandas浅析
  4. 解决设备行业尾款回收问题-深思精锐5加密锁-时钟版
  5. 亚马逊日本站|所需认证指南
  6. 互联网企业数据安全体系建设
  7. xshell详细jdk环境配置教程
  8. Vue中实现图片放大镜效果代码 复制即可用
  9. 订书机外壳注射模设计(设计说明书+CAD图纸)
  10. QQ营销,你必须知道的技巧