SSR渲染--01--初识Nuxt

news2024/11/16 7:42:10

SSR服务端渲染

SSR服务端渲染:在后端将html页面处理好,前端直接展示(可以解决为后端给你传了一个html脚本,全段渲染)

为什么要有SSR服务端渲染?

可以解决单页面首屏加载慢的问题,同时有利于用户体验。

服务端渲染?客户端渲染?更好的方式?

服务端渲染:前后端代码完全耦合在一起,不利于开发和维护;(不利于前后端分离开发);服务端压力大;用户体验一般(查看不同的页面,需要刷新浏览器);无法操作dom;

客户端渲染:首屏渲染慢 , 不利于SEO (搜索引擎优化)的

同构渲染:后端渲染+前端渲染【操作比较复杂,所以现在又Nuxt框架,自动帮我们实现渲染】

具体的流程就是,在服务端执行一次框架的代码,用于实现服务端渲染,实现首屏的输出,然后在客户端再执行一次,用于接管页面交互(后期的交互都是客户端渲染)。这样就解决了 SEO 和首屏渲染慢的问题,拥有传统服务端渲染的优点,也有客户端渲染的优点
(首屏用服务端渲染,后续用客户端渲染)

【可以理解为服务端渲染一次,客户端渲染一次】
【主要是因为如果只是服务端渲染的话,那么相当于是一个文本字符串构成的页面,那么vue原本的一些事件绑定还有特性都没办法用了】

如何实现同构渲染(SSR)?

第一种方式:

​ 使用 Vue , React 等框架的官方解决方案:

​ 这种方式的有点:有助于立即原理。

​ 缺点:需要搭建环境,比较麻烦。

第二种方式:就是使用第三方的解决方案

​ React 生态的 Next.js

​ Vue 生态的 Nuxt.js

涉及构建设置和部署的更多要求

客户端渲染的构建仅仅构建客户端的应用就可以了,而同构渲染需要构建两个端。

客户端渲染的应用可以部署在任意的 Web 服务器中,而同构渲染的应用只能部署在 Node.js Server

中。

NuxtJs

官网:https://v2.nuxt.com/docs/get-started/installation

安装

在这里插入图片描述

在这里插入图片描述

配置项

在这里插入图片描述

✨  Generating Nuxt.js project in nuxt_pro
【项目名称】? Project name: nuxt_pro
【编程语言】? Programming language: JavaScript
【打包方式】? Package manager: Npm 
【UI框架】? UI framework: None 
【模板引擎】? Template engine: HTML 
【格式化空间】? Nuxt.js modules: (Press <space> to select, <a> to toggle all, <i> to invert selection)
【格式化空间】? Linting tools: (Press <space> to select, <a> to toggle all, <i> to invert selection)
【测试框架】? Testing framework: None
【渲染技术:SSR(服务端渲染)】? Rendering mode: Universal (SSR / SSG)
【开发目标】? Deployment target: Server (Node.js hosting)
【开发工具】? Development tools: (Press <space> to select, <a> to toggle all, <i> to invert selection)
【github 账号】? What is your GitHub username? aliyanyi
【版本控制】? Version control system: Git

项目启动

在这里插入图片描述

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

目录结构

assets资源目录,用于存放需要编译的静态资源。例如:LESS、SASS等;默认情况下,Nuxt使用Webpack若干加载器处理目录中的文件
componentsvue组件目录,Nuxt.js 不会增强该目录,及不支持SSR
layouts布局组件目录
pages页面目录,所有的vue视图,nuxt根据目录结构自动生成对应的路由。
plugins插件目录
static静态文件目录,不需要编译的文件
storevuex目录
nuxt.config.jsnuxt个性化配置文件,内容将覆盖默认
package.json项目配置文件

路由

官网:https://zh.nuxtjs.org/guide/routing

Nuxt.js 依据 pages 目录结构自动生成 vue-router 模块的路由配置。

要在页面之间使用路由,我们建议使用 标签

在这里插入图片描述

路由导航

  • a 标签:它会刷新整个页面,不要使用
  • nuxt-link 组件,类似于 router-link
  • 编程式导航,也就是通过 js 跳转路由,也类似于 vue-router 中的编程式导航。
    在这里插入图片描述

动态路由

在 Nuxt.js 里面定义带参数的动态路由,需要创建对应的以下划线作为前缀的 Vue 文件 或 目录
在这里插入图片描述

嵌套路由

通过 vue-router 的子路由创建 Nuxt.js 应用的嵌套路由。

创建内嵌子路由,添加一个 Vue 文件,同时添加一个与该文件同名的目录用来存放子视图组件别忘了在父组件( .vue 文件) 内增加 用于显示子视图内容。
在这里插入图片描述

自定义路由

官网:https://zh.nuxtjs.org/api/configuration-router

基础用法

在这里插入图片描述

拓展

在这里插入图片描述

模板

官网:https://zh.nuxtjs.org/guide/views

定制模板:

(需要自己创建 app.html 文件,默认为根目录)用于为 Nuxt 应用程序创建文档的实际 HTML 框架

在这里插入图片描述

布局

默认布局

自己在项目的根目录下面,创建 layouts 目录,注意目录的名字不能修改

录创建一个default.vue 文件,内部引入<Nuxt /> 呈现页面组件。
在这里插入图片描述
在这里插入图片描述

(画的有点乱,先看着吧,不行以后在删)

自定义布局

请将blog.vue文件添加到布局目录layouts/blog.vue

使用的时候,在页面的 layout:'blog’声明下,如果特意说明了自定义布局,默认布局就会失效。
在这里插入图片描述

异步数据

https://v2.nuxt.com/docs/features/data-fetching#async-data

asyncData

用来异步获取数据或处理数据的钩子,是在服务端渲染的时候执行的。

asyncData 仅适用于 pages 并且您无权访问 this 钩子里面。【其它的组件要使用,只需要将其在页面组件中注册一下,让其成为子组件,然后把 asyncData 方法中获取到的数据传递到子组件中就可以了】

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

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

相关文章

JUC之可见性和有序性

目录 java内存模型 可见性 现象出现 现象解释 解决方法 有序性 诡异的结果 解决方法 Happens-before规则 java内存模型 Java内存模型&#xff08;Java Memory Model&#xff0c;简称JMM&#xff09;定义了Java程序中各种变量、对象的访问方式和内存关系。JMM规定了线…

小程序-uniapp:uni-app-base 项目基础配置及使用,开箱可用

目前&#xff08;20230605&#xff09;uni-app最新版本&#xff08;3.8.4.20230531&#xff09; 一、官网文档 uni-app官网 二、创建项目 项目目标&#xff1a;vue3tsvitevscode 创建以 typescript 开发的工程&#xff08;如命令行创建失败&#xff0c;请直接访问 gitee 下…

consul入门案例及配置热更新的实现及Feign的使用

Consul的简单入门 当Producer启动时,会向Consul发送一个post请求,告诉Consul自己的ip和Port;Consul接收到producer的注册后,每个10S(默认),会向producer发送一个健康检查的请求,检验Producer是否健康当Consumer发送GET方式请求/api/address到Producer时,会先从Consul中拿到一个…

Linux常用命令——gdb命令

在线Linux命令查询工具 gdb 功能强大的程序调试器 补充说明 gdb命令包含在GNU的gcc开发套件中&#xff0c;是功能强大的程序调试器。GDB中的命令固然很多&#xff0c;但我们只需掌握其中十个左右的命令&#xff0c;就大致可以完成日常的基本的程序调试工作。 语法 gdb(选…

DeepFace:人脸识别库 DeepFace 简单认知

写在前面 工作中遇到&#xff0c;简单整理博文内容为 deepface 的简单介绍理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停息。所有其它的路都是不完整的&#xff0c;是…

HarmonyOS学习路之开发篇—Java UI框架(使用工具自动生成JS FA调用PA代码)

JS FA&#xff08;Feature Ability&#xff09;调用PA &#xff08;Particle Ability&#xff09;是使用基于JS扩展的类Web开发范式的方舟开发框架所提供的一种跨语言能力调用的机制&#xff0c;用于建立JS能力与Java能力之间传递方法调用、处理数据返回以及订阅事件上报的通道…

代码审计——目录遍历详解

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 目录遍历&#xff0c;即利用路径回溯符“../”跳出程序本身的限制目录实现下载任意文件。 例如Web应用源码目录、Web应用配置…

FastDeploy部署参考

一、FastDeploy的gitee地址 https://gitee.com/leiqing1/FastDeploy/blob/release/0.3.0/docs/cn/faq/use_sdk_on_windows.md#21-%E4%B8%8B%E8%BD%BD%E9%A2%84%E7%BC%96%E8%AF%91%E5%BA%93%E6%88%96%E8%80%85%E4%BB%8E%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91%E6%9C%80%E6%96%B0%…

When viruses are good for you 病毒,有时对人体是有益的 | 经济学人20230506版社论双语精翻

本篇来自《经济学人》&#xff08;The Economist&#xff09;2023年5月6日社论&#xff08;Leaders&#xff09;精选&#xff1a;《病毒&#xff0c;有时对人体是有益的》&#xff08;When viruses are good for you&#xff09;。 Bacteriophages 噬菌体 When viruses are goo…

onlyoffice变量提取,处理各种办公文档

onlyoffice变量提取,处理各种办公文档 使用 ONLYOFFICE Docs 在 HumHub 中处理各种办公文档。 带有 HumHub 连接器的 ONLYOFFICE Docs 企业版允许您在灵活的开源社交网络工具包 HumHub 中实时协作查看和编辑办公文档(Word、Excel 或 PowerPoint)。它包括 ONLYOFFICE Docs&#…

代码审计——SQL注入详解

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 当应用程序将用户输入的内容&#xff0c;拼接到SQL语句中&#xff0c;一起提交给数据库执行时&#xff0c;就会产生SQL注入威…

代码随想录训练营Day60|84. 柱状图中最大的矩形

84. 柱状图中最大的矩形 class Solution {public int largestRectangleArea(int[] heights) {int res0;// 数组扩容&#xff0c;在头和尾各加入一个元素int [] newHeights new int[heights.length 2];newHeights[0] 0;newHeights[newHeights.length - 1] 0;for (int index…

Docker desktop 怎么切换docker源

点击setting&#xff0c;点击docker Engine 进行编辑 {"registry-mirrors":["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://4jup2u41.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn&q…

校园预付费管理系统与水电计量设备仪表的实际应用 安科瑞 许敏

摘要&#xff1a;论文设计了适用于学生公寓的自助式预付费控电控水管理系统&#xff0c;采用多种智能功能&#xff0c;可以监测和显示漏电现象&#xff0c;通过短路、跳线、零线接地等方式防范和记录用户的偷电行为&#xff0c;通过报警和拉闸防止事故的发生。该系统采用先进的…

霍夫变换原理

文章目录 霍夫变换原理当点都在y轴上时&#xff0c;用ykxb形式是无法求出参数空间中的交点&#xff0c;也就是累计都一样。所以就用极坐标来表示参数空间。公式求证过程 霍夫变换原理 当点都在y轴上时&#xff0c;用ykxb形式是无法求出参数空间中的交点&#xff0c;也就是累计都…

linux服务器安装nodejs

注意&#xff1a; 本文针对的是有linux操作基础&#xff0c; 会使用vim的基本操作的同学。故有些很基础的东西没有赘述&#xff0c;如果是纯小白的同学&#xff0c;看起来可能会感觉缺失一些东西。 1.nodejs官网下载自己需要的版本的node node版本选择下载地址 我使用的是14.…

图像边缘检测原理

文章目录 图像边缘检测原理1:2:3:基本边缘检测算子 图像边缘检测原理 1: 图像的边缘指的是图像中像素灰度值突然发生变化的区域&#xff0c;如果将图像的每一行像素和每一列像素都描述成一个关于灰度值的函数&#xff0c;那么图像的边缘对应在灰度值函数中是函数值突然变大的…

Autoware 安装(踩坑指南)

Autoware 安装&#xff08;踩坑指南&#xff09; 【Autoware】2小时安装Autoware1.13&#xff08;保姆级教程&#xff09; Autoware入门学习&#xff08;二&#xff09;——Ubuntu18.04下的源码安装和配置 上面的两篇博客安装都异常顺利&#xff0c;甚至没有一点报错&#xff0…

AMEYA360代理线:艾睿红外热成像仪数据机房监测应用

数据信息时代&#xff0c;数据机房是企业重要的区域。近日某购物平台发生的数据机房宕机事故&#xff0c;引发关注。机房设备温度异常&#xff0c;使得系统崩溃&#xff0c;经济损失超亿元。红外热成像仪作为一种非接触式、精准度高、可视化的温度测量工具&#xff0c;为数据机…

【MyBatis 神级框架】从入门到进阶

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 1. 什么是 MyBatis 1.1 为什么要学MaBatis&am…