0

0

react同构应用是什么

WBOY

WBOY

发布时间:2022-06-28 10:47:59

|

2097人浏览过

|

来源于php中文网

原创

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

react同构应用是什么

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

react同构应用是什么

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

什么是同构

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

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

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

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

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

同构的优势和劣势

同构的优势如下:

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

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

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

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

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

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

ImgGood
ImgGood

免费在线AI照片编辑器

下载

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

同构的劣势如下:

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

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

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

扩展知识:

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

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

前后端配合技术的演进

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

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

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



0.png

【相关推荐:javascript视频教程web前端

相关文章

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

89

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

276

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

59

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

99

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

105

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

230

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

619

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

173

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 6.1万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1万人学习

React核心原理新老生命周期精讲
React核心原理新老生命周期精讲

共12课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号