SSR理解(vite与nuxt比较)

一、SSR的概念与理解(什么是SSR)

  1. 定义:SSR是指在服务器端完成页面的渲染工作,将最终生成的HTML内容发送给浏览器。

简单来说,就是在服务器端将网页内容渲染成HTML,然后将这个渲染好的HTML发送到客户端,也就是我们的浏览器。

  1. 原理:(渲染过程)传统的Web应用是在客户端(浏览器)通过JavaScript加载和渲染页面内容,而SSR则是在服务器端生成完整的HTML页面,然后发送给客户端。

  2. ssr(Server-side rendering)与csr(Client-side rendering)的区别
    ssr:

    1. csr
      二、SSR的优势
      1、SEO优化:索引擎爬虫通常只能爬取服务器端生成的静态HTML内容。通过SSR,我们可以确保爬虫能够正确索引和理解页面容,从而提高网站的搜索引擎排名。
      2、首屏渲染速度快:由于服务器端已经将页面渲染成HTML,所以客户端只需要加载和渲染HTML,不需要执行JavaScript来生成页面,从而大大加快了页面加载速度。
      3、更好的用户体验:由于用户能够快速看到首屏内容,所以整个页面的渲染过程会更加平滑,用户不会感到页面卡顿或闪烁。
      4、SSR的实现方式:
      (1)nuxt
      (2)vite的ssr
      (3)其他框架的ssr
      5、Vue和React都支持服务器端渲染(SSR),但是它们的实现方式有所不同Vue服务器端渲染通常是通过 vue-server-renderer 包实现的,而React服务器端渲染则是通过react-dom/server 的renderToString 或 renderToStaticMarkup 方法实现。
      三、ssr比较Vite与Nuxt的ssr

    2. nuxtvite服务端渲染实现原理的不同

      Vite:基于中间件实现(express等)

      优点:(1)如果基于vue3项目修改配置更加方便

      缺点:(1)社区资料不够完善、后续维护不方便

      2)很多各种优化插件需要单独配置

      3)后续seo优化配置相对繁琐

      Nuxt.js Vite 都是现代前端开发工具,但它们的服务端渲染(SSR)实现原理不同。

      nuxt有更强大的服务端渲染支持,vite服务端渲染相对没那么成熟

      Nuxt 更适合需要同时支持SSRSPA的项目,而Vite更倾向于只实现现代浏览器兼容的项目。

      Nuxt:基于vue的服务端渲染框架(Nuxt3支持vue3,也是基于vite ,nuxt:Nuxt: The Intuitive Vue Framework · Nuxt
      优点: (1)有强大的服务端渲染支持,完整的ssr解决方案、开箱即用

      (2)对于vue的所有使用强大支持

      (3)内置了很多seo优化

      (4)爱奇艺官网用的nuxt服务端渲染
      缺点:(1)会引入新框架,增加项目复杂性

      (2)页面多了服务端器压力大

  3. 爱奇艺服务端渲染(nuxt)文档

  4. 参考文档:https://baijiahao.baidu.com/s?id=1763225593717702219&wfr=spider&for=pc

  5. 如何判断一个页面是不是ssr?

  6. (1)刷新页面,查看network是否返回页面

    (2)页面鼠标右键“查看元素”,看是否返回完整的html,主要看body下面的元素

  7. nuxt相关使用

  8. nuxt官方文档:https://nuxt.com/icon-default.png?t=N7T8https://nuxt.com/
    02.Nuxt3目录结构介绍和HelloWorld编写_哔哩哔哩_bilibili当Nuxt3项目创建好之后,我们用VSCode打开这个项目。然后可以看到项目根目录已经有了很多的文件。这节课我们就先来了解一下这些文件的作用。, 视频播放量 9198、弹幕量 12、点赞数 160、投硬币枚数 48、收藏人数 60、转发人数 7, 视频作者 技术胖, 作者简介 40岁程序员,回村养老,调侃生活,畅聊科技。合作/交流V+php100 ,相关视频:11.Nuxt3中间件的使用和路由守卫编写,06.Nuxt3布局模板的编写和插槽的使用,10.数据库操作-TypeORM的实体编写 | NestJS快速入门教程,02.NestJS环境搭建和项目创建NestJS CLI的使用,12.Nuxt3安装失败的解决方法-补充,02. 用Pinia的方式创建一个Store,【Fitten Code】AI编程助手评测,结局令人意外?,00.【课程介绍】关于教程的说明 | VitePress | 2024最新前端教程 | 技术胖,08.数据库操作-NestJS中的ORM简介 | NestJS快速入门教程,团队1个月没搞定的在线文档编辑功能,让我一天搞定了icon-default.png?t=N7T8https://www.bilibili.com/video/BV1HA4y197oy/?p=2&spm_id_from=pageDriver

  9. 还是建议如果是vue项目,想要服务端渲染效果更好一点,后续seo优化更方便一点配置,建议还是用Nuxt:

  10.  nuxt目录结构

    在Nuxt 3中,我们可以使用Vue 3的组合式API,以及Nuxt 3提供的服务端渲染(SSR)和客户
    端渲染(CSR)的功能。
    Nuxt 3的目录结构相比于Nuxt 2有所简化,主要包括以下几个部分:
    components:存放组件的目录。
    layouts:存放布局的目录,用于定义页面的结构。
    pages:存放页面的目录,Nuxt 3会根据这个目录生成对应的路由。
    plugins:存放插件的目录,如Vue插件或者Nuxt插件。
    server:存放服务端代码的目录,如中间件等。
    assets:存放静态资源的目录。
    nuxt.config.ts:Nuxt 3的配置文件。

    package.json:项目的依赖配置和脚本命令文件。

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

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

相关文章

网络安全-等级保护制度介绍

一、等保发展历程 (1)1994国务院147号令 第一次提出等级保护概念,要求对信息系统分等级进行保护 (2)1999年GB17859 国家强制标准发布,信息系统等级保护必须遵循的法规 (3)2005年公安…

二、BIO、NIO、直接内存与零拷贝

一、网络通信编程基础 1、Socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,是一组接口,由操作系统提供; Socket将复杂的TCP/IP协议处理和通信缓存管理都隐藏在接口后面,对用户来说就是使用简单的接口进行网络应用编程…

OPC UA边缘计算耦合器BL205工业通信的最佳解决方案

OPC UA耦合器BL205是钡铼技术基于下一代工业互联网技术推出的分布式、可插拔、结构紧凑、可编程的IO系统,可直接接入SCADA、MES、MOM、ERP等IT系统,无缝链接OT与IT层,是工业互联网、工业4.0、智能制造、数字化转型解决方案中IO系统最佳方案。…

Quartus II 13.1添加新的FPGA器件库

最近需要用到Altera的一款MAX II 系列EPM240的FPGA芯片,所以需要给我的Quartus II 13.1添加新的器件库,在此记录一下过程。 1 下载所需的期间库 进入Inter官网,(Altera已经被Inter收购)https://www.intel.cn/content…

error: linking with `cc` failed: exit status: 1

使用pip安装pyd4时报错,然后修改用手动安装 ./setup install 结果还是不行,报错 error: linking with cc failed: exit status: 1 error: cargo rustc --lib --message-formatjson-render-diagnostics --manifest-path Cargo.toml --release -v --fe…

web安全之SQL手工注入漏洞测试

一、目的 1.掌握SQL注入原理; Sql注入详解(原理篇)_sql注入攻击的原理-CSDN博客 2.了解手工注入的方法; 3.了解MySQL的数据结构; 4.了解字符串的MD5加解密 二、过程 1.进去后出现以下界面 找注入点 发现有注入点,即id被代入执…

华清数据结构day3 24-7-18

基于昨天代码增加增删改查功能 zy.h #ifndef ZY_H #define ZY_H #define MAX 100 //最大容量 //定义学生类型 struct Stu {char name[20];int age;double score; }; //定义班级类型 struct Class {struct Stu student[MAX]; //存放学生的容器int size; //实际…

udp和tcp区别

1. 连接性 TCP:TCP是一种面向连接的协议。在数据传输之前,TCP需要先建立连接,然后进行数据传输,最后再关闭连接。TCP通过三次握手来建立连接,确保数据的可靠性和完整性。一旦建立连接,数据传输过程中会进行…

Mysql —— 事务

目录 什么是事务? 两种方式实现事务: 方法一 方法二: 事务四大特性(简称ACID) 并发事务问题(面试题) 事务隔离级别 什么是事务? 事务是一组操作的集合,它是一个不可分割的工作单位&#xff…

封装的通用链表(list.c/list.h/test_list.c)

#ifndef LIST_H #define LIST_H#include <stdio.h> #include <stdbool.h>// 通用链表节点 typedef struct ListNode {void* ptr;struct ListNode* prev;struct ListNode* next; }ListNode;// 通用链表结构 typedef struct List {ListNode* head;size_t size; }List…

Web开发:ASP.NET CORE前后端交互之AJAX(含基础Demo)

目录 一、后端 二、前端 三、代码位置 四、实现效果 五、关键的点 1.后端传输给前端&#xff1a; 2.前端传输给后端 一、后端 using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.Rendering; using WebAppl…

【Android】Intent基础用法及作用

文章目录 使用Intent在活动中穿梭组成显式Intent隐式Intent显式与隐式区别作用 活动间传递数据向下一个活动传递数据返回数据给上一个活动 使用Intent在活动中穿梭 Intent&#xff08;意图&#xff09;是一种重要的消息传递对象&#xff0c;用于在不同组件&#xff08;如活动&…

数据挖掘新技能:Python爬虫编程指南

Python爬虫的优势 Python之所以成为数据爬取的首选语言&#xff0c;主要得益于其丰富的库和框架支持。以下是一些常用的库&#xff1a; Requests&#xff1a;用于发送HTTP请求&#xff0c;简单易用&#xff0c;是Python爬虫的基础库。BeautifulSoup&#xff1a;用于解析HTML文…

StarRocks on AWS Graviton3,实现 50% 以上性价比提升

在数据时代&#xff0c;企业拥有前所未有的大量数据资产&#xff0c;但如何从海量数据中发掘价值成为挑战。数据分析凭借强大的分析能力&#xff0c;可从不同维度挖掘数据中蕴含的见解和规律&#xff0c;为企业战略决策提供依据。数据分析在营销、风险管控、产品优化等领域发挥…

使用 spring MVC 简单的案例 (1)计算器

一、计算器 1.1前端代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> …

签名优化:请求数据类型不是`application/json`,将只对随机数进行签名计算,例如文件上传接口。

文章目录 I 签名进行请求数据类型类型判断1.1 常见的ContentType1.2 签名切面处理1.3 文件上传案例1.4 处理接口信息背景: 文件上传接口的请求数据类型通常为multipart/form-data,方便携带文本域和使用接口文档进行调试。 如果携带JSON数据,不方便调试接口。 前端数据也要特…

Github 2024-07-18 开源项目日报Top10

根据Github Trendings的统计,今日(2024-07-18统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目3非开发语言项目3Jupyter Notebook项目2Python项目2JavaScript项目1C#项目1Rust项目1MDX项目1C++项目1项目化学习 创建周期:253…

Python数据获取(网页视频、音频版)

爬取数据&#xff0c;上一章有介绍&#xff0c;不懂流言私信或者评论交流即可&#xff0c; 在Python中编写爬虫通常涉及以下几个步骤&#xff1a; 发送HTTP请求&#xff1a;使用requests库向目标网站发送请求。解析网页内容&#xff1a;使用BeautifulSoup从HTML中解析出需要的…

JAVA中的File类,文件流,字节流和字符流超级详解(1.8万字干货 )

1.File类 在Java中&#xff0c;File 类是 java.io 包中的一个重要类&#xff0c;它提供了与文件或目录路径名相关的一系列操作。File 类可以用来创建、删除、重命名文件和目录&#xff0c;也可以用来获取文件或目录的属性&#xff0c;比如大小、最后修改时间等。 File类的常用方…

10 - FFmpeg - 重采样 - SoftwareResampleExample

一. 音频帧概率详解&#xff1a; 1. 概念 1&#xff09;采样率&#xff08;Sample Rate&#xff09;&#xff1a;每秒从连续信号中提取并组成离散信号的采样个数&#xff0c;它用赫兹&#xff08;Hz&#xff09;来表示。 一般音乐CD的采样率是 44100Hz&#xff0c;所以视频…