React(单页面与多页面)

背景知识

  • HTML,js,css都位于服务器上
  • 浏览器缓存机制:用户第二次访问某个页面,浏览器需要根据HTML加载css/js资源,但不是从服务器上加载,而是从浏览器缓存中(上次用户访问时,浏览器做了css/js的资源备份)

下列比较中,都假设用户是第一次访问某个页面(A/B),以排除浏览器缓存机制的干扰

多页面应用

  • URL用于浏览器向服务器请求相应资源。不同URL返回不同HTML。
  • 浏览器清空A页面,根据刚返回的HTML内容下载相应js/css资源渲染B页面。
  • 即使A与B页面存在公共资源(导航栏等),这些公共资源也会被清空,重新下载。
  • 用<a href="xxx"></a>来实现页面跳转

单页面应用

  • URL用于浏览器向服务器请求相应资源,但不同URL返回同一个HTML(shell HTML),但该HTML内容有更新
  • 浏览器不清空A页面,只是下载B页面所需的js/css资源(代码分片)
  • 如果A与B页面存在公共资源(导航栏等),这些公共资源不会被重复下载。
    刷新网页,访问http://localhost:3000,在浏览器的网络工具中可以看到下载了三个文件,分别是common.bundle.、bundle.和home.chunk.js,其中home.chunk.j就是特定于Home的分片文件,当我们通过点击顶栏的About链接时,可以看到只有一个新下载的文件about.chunk扣
  • 用<route />来实现页面更新
  • 实现原理
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,865评论 1 92
  • 性能优化方向分类 请求数量: 合并脚本和样式表, CSS Sprites, 拆分初始化负载, 划分主域(使用“查找...
    Www刘阅读 1,830评论 3 8
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 3,613评论 1 19
  • 感谢我的影子,陪伴了我这么多年,在那些有光芒的日子里,你陪着我一起长大。在往后的时光里,我们继续一起成长啊。你一定...
    幸福绿蚂蚁阅读 126评论 0 0
  • 欲使其灭亡,先令其疯狂 最近,国内火了国产大片,战狼2,我在日坛酒店的电影院看过。没有写影评,一是确实比较忙,没有...
    ef053e4d2a28阅读 437评论 0 2