活动页服务端渲染探索

目标

通过采用在服务端渲染激励页的方式,降低页面加载白屏时间,从而提升激励 H5 渲染体验。

架构设计

在这里插入图片描述
在这里插入图片描述

前端服务框架调研选型

只对比分析以下两种方案:

  • Vue3 + Nuxt3 + Webpack
  • Next.js + React + Node.js
Nuxt3Next.js
介绍Nuxt是一个基于Vue的通用应用框架,预设了利用Vue开发服务端渲染的应用所需要的各种配置,主要关注的是应用的UI渲染Next是一个React框架,允许使用React构建SSR和静态web应用
响应时间几乎相同几乎相同
框架Github Star39.8k85.3k
Npm 下载数333,9222,130,573
脚手架工具create-nuxt-appcreate-next-app
优势1. 它的主要范围是UI渲染,同时抽象出客户端/服务器分布
2. 静态渲染、前后分离
3. 自动代码分层
4. 服务、模板皆可配置
5. 项目结构清晰
6. 组件与页面无缝切换
7. 默认支持得ES6 / ES7
8. 支持开发热更新
9. 路由级别的异步数据获取
10. 支持静态文件服务
11. 样式预处:Sass,Less,Stylus
1. 默认情况下,每个组件都是服务器渲染的
2. 自动代码拆分,加快页面加载速度
3. 不加载不必要的代码
4. 简单的客户端路由(基于页面)
5. 基于Webpack的开发环境,支持模块热更新(HMR)
6. 获取数据非常简单
7. 支持任何Node HTTP服务器实现,如Express
8. 支持Babel和Webpack自定义
9. 能够部署在任何能运行node的平台
10. 内置页面搜索引擎优化(SEO)处理
不足1. 周边资源较少
2. 开发复杂的组件可能会很麻烦
3. 自定义配置显得很麻烦
4. 很多具有副作用的数据操作this.items[key]=value
5. 高流量可能会给服务器带来压力
6. 只能在某些挂钩中查询和操作DOM
1. Next不是后端服务,应该与后台操作独立开
2. 如果你只想创建一个简单的WEB应用,那么它可能会是牛刀杀鸡
3. 数据会在客户端和服务器重复加载
4. 没有实现前后分离的项目,迁移到Next是一件痛苦的事,可能需要双倍工作
性能中实现的基本的 HelloWorld 应用。每秒能处理190.05 个请求。平均一个请求时间为 52.619ms。在此度量标准上,Nuxt 与 Next.js 框架相比表现最差基于 Next 框架实现的Hello world程序,每秒能处理 550.87 个请求,每个请求平均花费时间为 18.153ms
上手难度

通过上面表格对比可以看出,Next.js 框架是更好的选择!

Next.js 框架调研

什么是 Next.js ?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/29462.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytest 禁用警告信息(忽略警告信息输出)

如图示例代码,提示test_001这个case 存在警告 新增pytest.ini 配置文件 [pytest] filterwarnings errorignore::UserWarning

leetcode:定长字串中元音的最大数目

定长字串中元音的最大数目 medium 给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为(a, e, i, o, u)。 示例 1: 输入:s "abciiidef", k 3 输出…

访问学者面试申请如何应对?

作为一个学者面试申请者,面对这一重要机会,我们需要认真准备并采取适当的应对策略。下面知识人网小编将提供一些建议,帮助你在面试中取得良好的表现。 首先,在准备阶段,你应该研究并了解申请机构的背景和研究方向。了解…

Langchain-ChatGLM配置文件参数测试

1 已知可能影响对话效果的参数(位于configs/model_config.py文件): # 文本分句长度 SENTENCE_SIZE 100# 匹配后单段上下文长度 CHUNK_SIZE 250 # 传入LLM的历史记录长度 LLM_HISTORY_LEN 3 # 知识库检索时返回的匹配内容条数 VECTO…

TinyKv流程梳理三

split流程 处理协程启动 func (bs *Raftstore) startWorkers(peers []*peer) {ctx : bs.ctxworkers : bs.workersrouter : bs.routerbs.wg.Add(2) // raftWorker, storeWorkerrw : newRaftWorker(ctx, router)go rw.run(bs.closeCh, bs.wg)sw : newStoreWorker(ctx, bs.store…

Spring Batch之读数据库——JdbcCursorItemReader之使用框架提供的BeanPropertyRowMapper(三十六)

一、BeanPropertyRowMapper介绍 参考我的另一篇博客: Spring Batch之读数据库——JdbcCursorItemReader(三十五)_人……杰的博客-CSDN博客 二、项目实例 1.项目框架 2.代码实现 BatchMain.java: package com.xj.demo27;import org.spri…

Haystack:建立端到端的NLP应用程序的工具箱

Haystack是一个端到端的自然语言处理(NLP)框架,可以使用语言模型、Transformer模型、向量搜索等功能来构建NLP应用程序。无论您想进行问题回答、答案生成、语义文档搜索,还是构建能够进行复杂决策和查询解决的工具,都可…

PDF在线转PPT,不用下载软件网页在线即可转换!

PDF是我们经常在办公中使用的文件格式,它的兼容性和安全性使得它成为了传输文件的首选。而PPT则是我们常用的演示文稿格式,无论是在学校还是在公司,我们都需要制作演讲和汇报的PPT文件。由于这两种文件格式的重要性,我们经常需要进…

17 | 从后端到前端:微服务后,前端如何设计?

微服务架构通常采用前后端分离的设计方式。作为企业级的中台,在完成单体应用拆分和微服务建设后,前端项目团队会同时面对多个中台微服务项目团队,这时候的前端人员就犹如维修电工一样了。 面对如此多的微服务暴露出来的 API 服务&#xff0c…

【AT89C52单片机项目】数字密码锁设计

实验目的 使用单片机设计数字密码锁。 实验仪器 一套STC89C52RC开发板套件,包括STC89C52RC开发板,以及USB烧录线。 设计要求 1、有设置密码、开锁工作模式; 2、可以每次都设置密码,也可以设置一次密码多次使用。 实验原理 …

JDK、JRE、JVM三者之间的关系以及区别

一、关系 JDK JRE Java 开发工具包 [Java,Javac,Javadoc,Javap等] JRE JVM Java 的核心类库 二、JDK,JRE与JVM介绍 1、JDK JDK是用于Java程序开发的最小环境,包含:Java程序设计语言,Java虚拟机(JVM)&#xff0…

物理机传输大文件到虚拟机

物理机快速传输大文件到虚拟机 测试使用Tabby传输大文件到虚拟机 1.1 准备大文件 1.2 通过Tabby上传文件到Linux 总耗时约:7分钟 1.3 通过EveryThing配置服务 打开EveryThing,点击工具—> 选项—>http服务器 启用HTTP服务器,配置…