返回顶部
首页 > 资讯 > 前端开发 > JavaScript >react同构应用的概念是什么
  • 559
分享到

react同构应用的概念是什么

2024-04-02 19:04:59 559人浏览 泡泡鱼
摘要

今天小编给大家分享一下React同构应用的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解

今天小编给大家分享一下React同构应用的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

在react中,同构应用指的是在客户端和服务端之间完整或者部分共享代码的应用,也可以被称为通用javascript应用;同构应用并不是不需要浏览器端渲染内容,而是使服务端和浏览器端渲染达到一种平衡,在服务器上生成渲染内容,让用户尽早看到有信息的页面。

教程操作环境:windows10系统、react17.0.1版、Dell G3电脑。

react同构应用

同构应用也被称为通用`JavaScript`应用,指的是在客户端和服务器端之间完整(或部分)地共享代码的应用。通过在服务器端运行应用的JavaScript代码,页面可在发送到浏览器之前预先填充内容,所以用户甚至可以在浏览器JavaScript运行之前就看到内容。当本地的JavaScript运行时,它会接手后续的交互及导航操作,通过快速初始化加载和服务端页面渲染,让用户在单页应用程序中得到流畅的交互体验。

什么是同构

随着node.js的异军突起,前后端开发有了归一化编程语言的基础土壤,页面模版、第三方依赖机制等都有实现前后端统一的契机。React率先引领了这种潮流,同构的概念也因此得以更广泛的传播。

需要读者明白的是,同构应用并不是不需要浏览器端渲染内容,而是使服务端和浏览器端渲染达到一种平衡。那么,怎么理解这种平衡呢?

在服务器上生成渲染内容,让用户尽早看到有信息的页面。一个完整的应用除包括纯粹的静态内容以外,还包括各种事件响应、用户交互等。这就意味着在浏览器端一定还要执行JavaScript脚本,以完成绑定事件、处理异步交互等工作。

从性能及用户体验上来看,服务端渲染应该表达出页面最主要、最核心、最基本的信息;而浏览器端则需要针对交互完成进一步的页面渲染、事件绑定等增强功能。所谓同构,就是指前后端共用一套代码或逻辑,而在这套代码或逻辑中,理想的状况是在浏览器端进一步渲染的过程中,判断已有的DOM结构和即将渲染出的结构是否相同,若相同,则不重新渲染DOM结构,只需要进行事件绑定即可。

从这个维度上讲,同构和服务端渲染又有所区别,同构更像是服务端渲染和浏览器端渲染的交集,它弥补了服务端和浏览器端的差异,从而使得同一套代码或逻辑得以统一运行。同构的核心是“同一套代码”,这是脱离于两端角度的另一个维度。

同构的优势和劣势

同构的优势如下:

更好的性能。这里的性能主要指渲染更加迅速、首屏展现的时间更快、文件更少,以及文件体积更小。

SEO优化支持。服务端接收到请求后,会返回一个相对完整、包含了初始内容的html文档,所以更有利于搜索引爬虫获取信息,提高搜索结果展现排名。同时,更快的页面加载时间也有利于搜索结果展现排名的提升。

实现更加灵活。服务端渲染只是直出页面的初始内容,浏览器端仍然需要做后续工作,以完成页面的最终展现。这样服务端渲染和浏览器端渲染仍可以平衡,在很大程度上也能实现代码复用。

可维护性更强。因为借助React等类库,我们完全能够实现大范围的代码复用,避免了服务端和浏览器端同时维护两套代码或逻辑。因此,整体代码量更少,维护成本更低。

对于低端机型更加友好。因为内容的初步渲染是在服务端完成的,所以对于低端机型更加友好,不至于页面加载时出现白屏幕的状况。

对于恶劣的网络环境更加友好。传统的前后端分离方式,在所有的JavaScript脚本下载并执行完毕后,才会呈现页面内容,中间经历了较多的网络请求,在恶劣的网络环境下,无疑增加了页面呈现基本内容的难度。在这方面,同构应用显然更有优势。

更好的用户体验。为了更加合理地平衡服务端和浏览器端渲染内容,我们可以将页面重要的核心部分设计在服务端完成,而次重要的交互部分可以在更重要的内容渲染完毕后,由浏览器端渲染或实现,这将有力地提升用户体验。

同构的劣势如下:

服务端处理的逻辑增多,增加了复杂性。

服务端无法完全复用浏览器端代码。

增加了服务端的TTFB(Time To First Byte)时间。TTFB时间指的是从浏览器发起最初的网络请求,到从服务器接收到第一个字节的这段时间。它包含了tcp连接时间、发送Http请求的时间和获得响应消息的第一个字节的时间。因为对数据的获取和对页面初始内容的渲染,势必会降低服务端返回的速度。

扩展知识:

前后端架构设计和服务端渲染概念

服务端渲染或直出的概念越来越流行。在了解如何基于React实现服务端渲染之前,我们有必要在架构层面对服务端渲染的“前世今生”进行整体了解:为什么会出现这样一个概念;这个概念落地之后能解决什么问题;服务端渲染和其他方式对比有何利弊等。

前后端配合技术的演进

早期的web开发,架构设计简单、直接,具体来讲,就是页面由jsP、PHP等工程师在服务端生成,浏览器只负责展现。那时候,前端工程师只需要给静态页面添加一些动态交互效果,很少会涉及数据逻辑等;而后端工程师负责页面内容,即当用户请求页面时,后端进行处理并返回完整的静态页面。这些过程一般会依靠模板引擎来完成。因此,在那个时候,甚至没有独立的前端工程师职位。即使有的话,这种做法的缺点也很明显,比如前后端分工职责不清。

如果由前端人员来开发模板,那么前端将会极度依赖后端环境,难以实现开发效率的最大化,同时关于数据格式的沟通成本也相对较高。另外,这样的架构模式对于前端技术的发挥和利用浏览器能力的空间是非常有限的。

随着前端技术的飞速发展,尤其是ajaxnode.js等技术的出现,一种前后端分离的架构模式应运而生。在这种模式下,前后端分工变得非常清晰,两端的关键协作点是AJAX接口。下面我们以用户访问页面为例来一步步了解这种模式,如下图所示。

react同构应用的概念是什么

以上就是“react同构应用的概念是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网JavaScript频道。

--结束END--

本文标题: react同构应用的概念是什么

本文链接: https://lsjlt.com/news/98213.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • react同构应用的概念是什么
    今天小编给大家分享一下react同构应用的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2024-04-02
  • React Fiber的概念是什么
    这篇文章主要介绍了React Fiber的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇React Fiber的概念是什么文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • react sketch的概念是什么
    这篇文章主要介绍了react sketch的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react sketch的概念是什么文章都会有所收获,下面我们一起来看看吧。...
    99+
    2024-04-02
  • react element的概念是什么
    本篇文章和大家了解一下react element的概念是什么。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 在react中,element是最小的构建单元,是...
    99+
    2024-04-02
  • react中hook的概念是什么
    本文小编为大家详细介绍“react中hook的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“react中hook的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
  • react中setstate的概念是什么
    这篇文章主要介绍“react中setstate的概念是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react中setstate的概念是什么”文章能帮助大家解决...
    99+
    2024-04-02
  • react脚手架的概念是什么
    本篇内容介绍了“react脚手架的概念是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • es6解构的概念是什么
    本篇内容主要讲解“es6解构的概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“es6解构的概念是什么”吧! 在es6中,解构...
    99+
    2024-04-02
  • react中antd和dva的概念是什么
    今天小编给大家分享一下react中antd和dva的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2024-04-02
  • react高阶函数的概念是什么
    本文小编为大家详细介绍“react高阶函数的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“react高阶函数的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2024-04-02
  • es6解构赋值的概念是什么
    这篇文章主要讲解了“es6解构赋值的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“es6解构赋值的概念是什么”吧! 在...
    99+
    2024-04-02
  • HTML基本结构的概念是什么
    这篇文章主要介绍了HTML基本结构的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇HTML基本结构的概念是什么文章都会有所收获,下面我们一起来看看吧。 <!-...
    99+
    2024-04-02
  • bootstrap响应式的概念是什么
    本篇内容介绍了“bootstrap响应式的概念是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • React的概念是什么及有哪些特点
    这篇文章主要介绍“React的概念是什么及有哪些特点”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React的概念是什么及有哪些特点”文章能帮助大家解决问题。react 是什么?React 是 Fa...
    99+
    2023-06-27
  • react和es6的概念是什么及有什么功能
    这篇文章主要讲解了“react和es6的概念是什么及有什么功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react和es6的概念是什么及有什么功能”吧!react是Facebook推出的...
    99+
    2023-07-04
  • WCF REST架构背后概念是什么
    这篇文章主要介绍“WCF REST架构背后概念是什么”,在日常操作中,相信很多人在WCF REST架构背后概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WCF REST架构背后概念是什么”的疑惑有所...
    99+
    2023-06-17
  • C++ sizeof概念及应用方式是什么
    这篇文章给大家介绍C++ sizeof概念及应用方式是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++编程语言支持各种程序设计风格,而且对C语言中的各种功能都提供支持。对于这样一款功能强大的编程语言我们应该如何...
    99+
    2023-06-17
  • MVCC的概念是什么
    本篇内容主要讲解“MVCC的概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MVCC的概念是什么”吧!MVCC作用MVCC使得大部分支持行锁的事务引擎,...
    99+
    2024-04-02
  • mysql.sock的概念是什么
    这篇文章主要讲解了“mysql.sock的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql.sock的概念是什么”吧! ...
    99+
    2024-04-02
  • HTML的概念是什么
    今天小编给大家分享一下HTML的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作