Nuxt3的学习记录(一)

1,703 阅读3分钟

|前言

大家好,我是吃西瓜不吐籽,用最通俗的话讲解前端内容是我的目标,对于习惯了SPA的我,今天开始将对SSR和Nuxt3做初步的学习,希望以下几天的文章可以帮助到同样对Nuxt3不是很了解的小伙伴们。

前置工作

什么是SSR

Nuxt是一种SSR(服务端渲染)应用,它区别于市面上广泛应用的SPA(单页面应用)。在Vue2中通过new Vue实例绑定到app根节点下,Vue3中则是通过CreateApp的api绑定实例,这两种本质上都是SPA的应用,在html模板中初始只存在一个app的根节点,在初始化实例后再对服务端发起文件请求,通过ajax的方式完成页面的渲染,其中最大的特点就是空白屏的出现。而SSR页面则是在服务端就已经完成了对页面的渲染,以html的文本格式返回给浏览器。这两种的区别可通过浏览器调试工具的检查网页源代码区分。

为什么要使用SSR

之前已经介绍过因为SPA和SSR的不同导致html模板中的节点不同。而搜索引擎在爬取信息的时候对于一些html标签会比较敏感,比如a标签等,针对搜索引擎优化的技术我们称之为SEO。SEO的目的就是让我们构建的应用程序有更高的“曝光率”,特别是像官网、商城这样的应用程序。为此,区别于SPA应用的单一根元素,能更高效的响应SEO的应用技术————SSR,就是我们所必须的。

体验Nuxt3

Nuxt3是一款新技术,其区别之前的Nuxt2,采用了Vue3框架为基础,集成了TS的语法和Rollup的编包工具。使得web的开发更加的简单和高效。

使用Nuxt3实现Hello World应用

准备工作:Nuxt3需要node版本在v14或v16

构建工程

npx nuxi init nuxt3-app

首先Nuxt3需要安装nuxi工具来初始化一个nuxt3应用

npm install

进入到nuxt3-app目录下,运行npm install安装依赖

npm run dev -- -o

依赖安装完成后使用npm run dev命令启动应用,默认地址http://localhost:3000

image.png 页面展示如上图

修改代码

找到app.vue文件,该文件是应用程序的主文件入口,将替换成Hellow World

总结

优缺点

SPA :整个web只有一个页面,使用路由机制进行组件间的切换。

优点:客户端渲染、传输数据量小、减少服务器压力、交互/响应速度快、前后端完全分离。

缺点:首屏加载慢、对SEO不友好,不利于搜索引擎快照。

SSR:将组件或页面通过服务器端生成HTML文本发送到浏览器端渲染。

优点:SEO友好,首屏加载速度快。

缺点:页面重复加载次数高、开发效率低、数据传输量大、服务器压力大。(Nuxt3针对以上问题都有对应的优化方式)。

渲染区别

SPA:通过ajax传递json对象、由浏览器渲染视图。检查网页源代码中无法获取到动态渲染的数据,不利于SEO爬虫。

SSR:传递完整的HTML给浏览器渲染视图。首次渲染的html中携带所有服务器端返回的数据,源代码中包含所有数据,利于SEO。

应用场景

SPA:对项目性能要求高、页面加载速度快、要求客户端渲染、对SEO要求低。适合ERP系统等管理平台。

SSR:对项目SEO要求高、首次打开响应速度快;适合官网、商城等高曝光率网站。