SSR渲染-初识Nuxt-01

news/2024/11/25 16:25:58/

SSR服务端渲染

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

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

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

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

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

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

同构渲染:后端渲染+前端渲染

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

(首屏用服务端渲染,后续用客户端渲染)

如何实现同构渲染(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.ppmy.cn/news/370654.html

相关文章

大学物理(上)-期末知识点结合习题复习(5)——刚体力学-转动惯量、力矩、线密度 面密度 体密度、平行轴定理和垂直轴定理、角动量定理和角动量守恒定律

目录 刚体的定轴转动 题1 题目描述 题解 题2 题解 题3 题目描述 题解 题4 题目描述 题解 题5 题目描述 题解 角动量定理和角动量守恒定律 刚体的定轴转动 1.转动动能 由&#xff0c;得 表示质量 表示质量分布点 2.转动惯量 为刚体对给定轴的转动惯量&…

显卡维修之显存位置如何确认

众所周知&#xff0c;一般显卡花屏通常是由显存问题引起&#xff0c;也有可能是核心脱焊。这里主要说的是N卡&#xff0c;即NVIDIA显卡。 通过mats工具可以知道是哪一个位置上的显存出问题&#xff0c;如下图B0报错 知道显存出问题&#xff0c;那么就需要换显存&#xff0c;下…

实时监测GPU的显存和显存清理小功能学习

目录 一、pynvml库的简单使用 二、显存清理 在跑神经网络训练或者推理的时候&#xff0c;有的时候很有必要实时监测一下显存的状态。NVIDIA显卡在终端管理界面&#xff0c;使用命令&#xff1a;watch -n 3 nvidia-smi可以指定每隔几秒中来显示一下显卡信息。当然NVIDIA也是开…

如何检测显卡类型和OpenGL版本?

摘要 OpenGL是一个行业标准的3D图像API。运行 CityEngine 需要 OpenGL 2.x 或更高版本。OpenGL 驱动通常与显卡驱动和支持的软件&#xff08;例如&#xff1a;DirectX&#xff09;一同安装。 过程 1.检测显卡类型&#xff08;Windows&#xff09;&#xff1a; 1&#xff09;…

宣布推出NVIDIA DGX GH200:首款100TB显卡显存系统

在 COMPUTEX 2023 上&#xff0c;NVIDIA 发布了 NVIDIA DGX GH200 &#xff0c;这标志着 GPU 加速计算的又一次突破&#xff0c;为要求最严苛的巨型 AI 工作负载提供支持。 除了描述 NVIDIA DGX GH200 架构的关键方面外&#xff0c;本文还讨论了 NVIDIA Base Command 如何实现快…

Material—— RBD(Houdini To UE)

Houdini刚体碎块导入UE&#xff0c;有两个方面需还原&#xff0c;一是材质还原&#xff0c;一是动态还原&#xff1b; 一&#xff0c;ABC to UE 材质方面&#xff0c;Houdini里的每个Primtive Group属性&#xff0c;都表示UE内的对应材质球&#xff1b;导入时勾选Find Material…

Spark集群部署和启动与关闭

上一篇我们讲了Hadoop集群部署和启动与关闭&#xff0c;今天我们讲一下Spark集群部署和启动与关闭。首先我们先来了解一下Spark集群部署模式&#xff0c;分别有以下三种&#xff1a; Standalone   Standalone&#xff08;独立模式&#xff09;是Spark一种简单的集群部署模式&…

Python之快速排序

算法思路&#xff1a; 我们首先判断数组是否只有一个元素或没有元素&#xff0c;如果是则直接返回原数组。否则&#xff0c;我们选择一个基准值&#xff08;这里我们选择数组的第一个元素&#xff09;&#xff0c;并将数组分为两个部分&#xff1a;小于基准值和大于基准…