谈谈你对 SPA 的理解?

1 理解基本概念

SPA(single-page application)单页应用,默认情况下我们编写 Vue、React 都只有一个html 页面,并且提供一个挂载点,最终打包后会再此页面中引入对应的资源。(页面的渲染全部是由 JS 动态进行渲染的)。切换页面时通过监听路由变化,渲染对应的页面 Client Side Rendering,客户端渲染 CSR
MPA(Multi-page application)多页应用,多个html页面。每个页面必须重复加载,js,css 等相关资源。(服务端返回完整的 html,同时数据也可以再后端进行获取一并返回“模板引擎”)。多页应用跳转需要整页资源刷新。Server Side Rendering,服务器端渲染 SSR
如何分清在哪渲染:HTML 是在前端动态生成的“客户端渲染”,在服务端处理好并返回的是“服务端渲染”。

2 优缺点

单页面应用(SPA)

  • 组成:一个主页面和页面组件
  • 刷新方式:局部刷新
  • SEO 搜索引擎优化:无法实现
  • 页面切换:速度快,用户体验良好
  • 维护成本:相对容易

多页面应用(MPA)

  • 组成:多个完整的页面
  • 刷新方式:整页刷新
  • SEO 搜索引擎优化:容易实现
  • 页面切换:切换加载资源,速度慢,用户体验差
  • 维护成本:相对复杂

两者的共性

  • 用户体验好、快,内容的改变不需要重新加载整个页面,服务端压力小。
  • SPA 应用不利于搜索引擎的抓取。
  • 首次渲染速度相对较慢 (第一次返回空的 html,需要再次请求首屏数据)白屏时间长。
    1.3 解决方案

3 解决方案

静态页面预渲染(Static Site Generation) SSG,在构建时生成完整的 html 页面。(就是在打包的时候,先将页面放到浏览器中运行一下,将HTML保存起来),仅适合静态页面网站。变化率不高的网站

SSR + CSR 的方式, 首屏采用服务端渲染的方式,后续交互采用客户端渲染方式。NuxtJS

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

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

相关文章

营销短信XML接口对接发送示例

在现代社会中,通信技术日新月异,其中,短信作为一种快速、简便的通信方式,仍然在日常生活中占据着重要的地位。为了满足各种应用场景的需求,短信接口应运而生,成为了实现高能有效通信的关键。 短信接口是一种…

L01_JVM 高频知识图谱

这些知识点你都掌握了吗?大家可以对着问题看下自己掌握程度如何?对于没掌握的知识点,大家自行网上搜索,都会有对应答案,本文不做知识点详细说明,只做简要文字或图示引导。 类的生命周期 类加载器 JVM 的内存…

KVM热迁移虚拟机+KSM内存页合并

KVM高级功能部署 文章目录 KVM高级功能部署资源列表基础环境一、静态迁移1.1.在源宿主机上准备虚拟机1.1.1、调试VNC1.1.2、创建虚拟机test011.1.3、console登录test01虚拟机1.1.4、标记虚拟机test01当前IP地址 2.1、提取磁盘和配置文件2.2.1、查看虚拟机test01当前状态2.2.2、…

Gradle的settings.gradle.kts你真的理解吗?

你还在用.gradle文件吗?例如build.gradle、settings.gradle,那么你就out了。现在我们有必要了解一下kts脚本了。在Android项目中,默认有3个文件可以替换成kts脚本,即project的build.gradle、app模块的build.gradle和project的sett…

DDR5—新手入门学习(一)【1-5】

目录 1、DDR背景 (1)SDR SDRAM时代 : (2)DDR SDRAM的创新 : (3)DDR技术的演进 : (4)需求推动: 2、了解内存 (1&…

go学习笔记-从圣经中抄录的接口值的思考

接口值 接口值,由两个部分组成,一个具体的类型和那个类型的值 下面4个语句中,变量w得到了3个不同的值。( 开始和最后的值是相同的) var w io.Writer w os.Stdout w new(bytes.Buffer) w nil var w io.Writer var…

Python中的数据类型与函数之美

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、Python中的数据类型初探 代码案例: 二、Python内置函数的魅力 代码案例&a…

我用 Midjourney 的这种风格治愈了强迫症

在 Midjourney 能够实现的各种布局之中,有两种风格因其简洁、有序而独居魅力,它们就是平铺 (Flat Lay) 和 Knolling (Knolling 就是 Knolling, 无法翻译🤣)。要在现实生活中实现这样的美学效果并不容易,你需要精心挑选各种小物件&…

pgsql 主从流复制安装及测试

目录 pgsql 主从流复制安装及测试 安装前准备安装pgsqlpgsql主131服务器操作pgsql主132服务器操作验证pgsql复制模式简介 pgsql 主从流复制安装及测试 pgsql 提供了多种复制模式,可以参考文章最后简介部分 安装前准备 我这准备了两台centos7.8的机器 ,安…

Mac JDK和SDK环境变量配置

一、Java JDK配置 1.下载并安装Java jdk1.8及以上,这个可以在网上自行搜索下载,这里不在详细描述 2.如果不知道JAVA_HOME的安装路径,可以输入命令查看:/usr/libexec/java_home -V ,如图 3.在终端输入命令&#xff1…

算法之堆排序

堆排序是一种基于比较的排序算法,通过构建二叉堆(Binary Heap),可以利用堆的性质进行高效的排序。二叉堆是一个完全二叉树,可以有最大堆和最小堆两种形式。在最大堆中,父节点的值总是大于或等于其子节点的值…

UIKit之猜图器Demo

需求 实现猜图器Demo 功能分解: 1>下一题切换功能 2>点击图片后能放大并背景变暗(本质是透明度的变化)。再次点击则缩小,删除暗色背景。 3> 答案区按钮点击则文字消失,选择区对应文字恢复。 4> 选择区…

springboot项目,@Test写法 @Before @After

某文件示例 package cn.xxx.crm.boss;import cn.xxxx.crm.manager.mq.rabbit.AliyunCredentialsProvider; import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; im…

第十九届全国环境友好科技竞赛(绿色创业类)正式启动

近日,第十九届全国环境友好科技竞赛(绿色创业类)正式拉开帷幕。本次竞赛由清华大学、同济大学、西安建筑科技大学及中国环境科学学会共同主办,旨在通过学科竞赛的方式鼓励全国高校学生积极参与到资源节约型和环境友好型的和谐社会…

探索python字典:遍历与访问的艺术

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、获取字典的键与值 1. 获取字典的键 2. 获取字典的值 二、遍历字典的键值对 1. 使用 …

2146. 【2017.6.17普及组模拟】小明解密码

题目描述 “天阶夜色凉如水,卧看牵牛织女星。” 小明是一个喜爱幻想的孩子。每天晚上,他都会静静地躺在家门前的草地上,抬头仰望天空,幻想着天上星星的故事,天空中,数颗星星一闪一闪地眨着眼睛,好像…

mybatis plus使用 (基本使用 生成器 逻辑删除等)

Mybatis plus 先查询再根据查询结果判断是否插入,并发情况下出现重复数据 解决:1、java代码中加同步代码块或加锁(保证查询、插入是一个原子性操作) 2、直接在数据库设置唯一键,java中无需先查询判断。捕获唯一键异常:org.spri…

【全开源】二手车置换平台系统小程序(FastAdmin+ThinkPHP+Uniapp)

二手车置换平台系统 特色功能: 车辆评估:系统提供车辆状况、性能和价值的评估功能,通过拍照、上传图片等方式自动识别车辆信息并给出估价建议,帮助买家和卖家更准确地了解车辆价值。 在线交易:平台提供在线购车、售车…

Idea中flume的Interceptor的编写教程

1.新建-项目-新建项目 注意位置是将来打包文件存放的位置&#xff0c;即我们打包好的文件在这/export/data个目录下寻找 2. 在maven项目中导入依赖 Pom.xml文件中写入 <dependencies> <dependency> <groupId>org.apache.flume</groupId> <artifa…