nuxt3教程 2024年7月

news/2024/12/14 13:57:54/文章来源:https://www.cnblogs.com/KooTeam/p/18606649

nuxt3教程 2024年7月

https://www.bilibili.com/video/BV11W421R7nC 1 2

前置-一集搞明白客户端渲染和服务端渲染,多页面开发和spa单页面开发
1安装介绍
2 服务端和客户端
3 基础配置
4 区分server和client,调试nuxt
5 路由的基本使用
6 命名路由,可选路由,全局路由
7 嵌套路由
8 编程式路由navigateTo
9 路由中间件
10 导航守卫
11 composables
12 $fetch和useAsyncData
13 useFetch,lazy,refresh
前置-axios的响应拦截器里应该怎么写错误处理?

14 useFetch封装

15 state
16 pinia的引入
前置-搞懂cookie同源请求
17 修改拦截器和导航守卫
18 nuxt错误处理
19 seo优化
20 layout
21 打包发布

Nuxt.js 的生命周期分为服务端生命周期和客户端生命周期。以下是它们的主要阶段:
服务端生命周期

nuxtServerInit(store, context): 服务端初始化,用于设置全局状态和动态路由参数。

middleware: 用于处理中间件逻辑,如身份验证。

validate: 用于校验动态路由参数的有效性。

asyncData: 在页面或组件加载之前被调用,用于请求数据。

fetch: 用于组件请求数据。

服务端和客户端共有的生命周期

beforeCreate: 在实例被创建之前执行,此时组件的 data 和 methods 都还没有被初始化。

created: 在实例创建之后执行,此时 data 和 methods 已经被初始化。

客户端生命周期

beforeMount: 在模板编译和挂载之前执行。

mounted: 在模板编译和挂载之后执行。

生命周期钩子执行顺序

父组件:beforeCreate -> created -> beforeMount -> mounted

子组件:beforeCreate -> created -> beforeMount -> mounted

注意事项

生命周期钩子中不能直接使用 window 对象,因为服务端没有 window。

asyncData 和 fetch 生命周期钩子中可以进行数据请求。

validate 生命周期钩子用于校验路由参数,必须返回一个布尔值或包含布尔值的 Promise。

modules:done 生命周期钩子在应用模块安装完成后触发。

以上是 Nuxt.js 的主要生命周期阶段。

jsp ssr

//ajax
//修改标签内容
//jsp 服务端渲染,ajax
1/内容比较多的利于seo的,那你就nuxt
1/内容比较小,需要seo,jsp ajax
1/不需要seo的,直接上vue

nuxt3使用方式
服务端 客户端
封装fetch
I
npx nuxi@latest init myNuxt

vue3+router+pinia
服务端渲染和客户端渲染
axios的响应拦截器的错误处理
npx nuxi@latest init myNuxt

//nuxt nitro 服务端引擎

css Ui库 都在配置引入

25
in const config=useRuntimeConfig()
if (config. isServer){

if (import. meta. server){

debug 选择js 可以配置

只能客服端 服务端log

/user/ [aa].vue param.aa 命令路由

可选路由 文件夹[[test]]/test.vue

全局路由名字随便 [...404].vue 前面都没匹配 才到这

自定义路由
page.vue里面写
definePageMeta({
path:'/about'
})

onMounted 不能ssr

嵌套路由
/pages/user.vue + nuxtPage
/pages/user/xx.vue

//navigateTo |在服务端渲染的时候使用
//router.push 在客户端渲染的时候使用

const router=useRouter()

beforeEach 路由导航守卫

// middleware/my.js 路由导航守卫
export default defineNuxtRouteMiddleware((to,from)=>{})
//page.vue
definePageMeta({middleware:['my']
})
// middleware/test.global.js 全局中间件路由导航守卫 page不用引用 同名字全局assel吗小先

storevue pinia

判断环境加token判断

composables 公共函数等 只能第一层不用导入

$fetch( request: 'http://localhost:8080/test') 同api fetch 会服务端客户端都执行 要sql就麻烦 要判断环境 只能在服务端推荐

在useAsyncData 里面执行就只在服务端 key固定 只在服务端执行一次 获取数据在这

语法糖 useFetch useAsyncData+$fetch lazy先出标签

​ useLazyFetch 上结合

服务端渲染  useFetch  解构出来 status 有状态padding
//refresh 刷新token 

useAsyncData+axios

useFetch 封装 或其他库 onRequset onResponse..basrurl

onResponseError

2024 7-


nuxtApp.runWithContext 执行跳转 小bug

https://juejin.cn/post/7246328828837838909

useState 全局状态 config也可以

cnpm install pinia @pinia/nuxt 还在配置加入

npm i @pinia-plugin-persistedstate/nuxt -D 持久化 nuxt陪着 pinia配置

修改拦截器和导航守卫

//不管是服务端还是客户端都能获取到token

需要token的,就不需要ssr服务端渲染

pinia plugin ture 服务端get token ok 持久化 nuxt陪着 pinia配置 用cookies获取

利用特效 只在客户端 find onMounted

./error.vue 自定义error页面

definePages({error:Object
})
clearError({redirect:'/'})

收到 客户端 showError 只能在服务端createError

seo

seo
app.vue
useHead(
title,mate,titleTemplate(){}
)

layouts 公共部分 布局

nuxt-layout 默认加 layouts/default.vue

default.vue =>slot

nuxt-layout =>nextPage

definePageMeta( meta: {
layout:false
}) 不使用布局

打包可以在配置分 生产 开发环境

这里的意思是使用第三方的CDN链接用于在生产环境下达到减少包体积的效果我习惯直接 说cdn加速,大家不要搞混了bb查看

√ index vueV login.vue

皮毛..全部

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

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

相关文章

spring-boot-devtools 实现热部署

1.devtoolsspring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。 2.项目搭建本文是采用IDEA搭建的Spring Boot应用,通过spring-boot-devtools配置,可以支持修改java文件会自动重启程…

IDEA bean json互转换插件

插件安装步骤:File->Settings->Plugins—>查找所需插件—>Install 或 File->Settings->Plugins—>Install plug from disk —>选择下载好的插件安装 一般插件安装后重启idea即可生效。 一、Java bean 转换 json 的插件 java-bean-to-json 下面详细安装…

转载:【AI系统】计算图的调度与执行

在前面的内容介绍过,深度学习的训练过程主要分为以下三个部分:1)前向计算、2)计算损失、3)更新权重参数。在训练神经网络时,前向传播和反向传播相互依赖。对于前向传播,沿着依赖的方向遍历计算图并计算其路径上的所有变量。然后将这些用于反向传播,其中计算顺序与计算图…

转载:【AI系统】微分实现方式

上一篇文章简单了解计算机中常用几种微分方式。本文将深入介绍 AI 框架离不开的核心功能:自动微分。 而自动微分则是分为前向微分和后向微分两种实现模式,不同的实现模式有不同的机制和计算逻辑,而无论哪种模式都离不开雅克比矩阵,所以我们也会深入了解一下雅克比矩阵的原理…

React16

React16免费基础视频教程 https://www.bilibili.com/video/BV1g4411i7po P1 01_React免费视频课程介绍 https://jspang.com 2019 5年前 react16 16.8.6 https://react.dev/ P2 02_React简介和Vue的对比 P3 03_React开发环境的搭建 npm i -g create-react-app@3.0.0 create-reac…

Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

错误报在了forward里的Conv2d处。原因是函数写在forward里可能默认cpu,如果写在init构造函数里,就不需要再指定cuda。 修改为箭头指示就不再报错了。 【参考】 Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same-CSDN博客

jquery半透明拖拽窗口插件

这是一款jquery半透明拖拽窗口插件。该插件可以在页面生成可以拖拽、最大化、最小化的浮动窗口。在线演示 下载使用方法 在页面中引入style.css、jquery和jquery-translucent.js文件。<link rel="stylesheet" type="text/css" href="style.css&quo…

Marvelous Designer高版本更改界面字体大小

打开软件 打开 设置/用户自定义 - 用户自定义选择用户界面 - 显示 - 自动规模不勾选 - 分辨率选择大重启软件即可

golang:第三方库:用jordan-wright/email发送邮件

一,安装第三方库: $ go get -u github.com/jordan-wright/email go: downloading github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible go: added github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible 二,代…

为了改一行代码,我花了10多天时间,让性能提升了40多倍---Pascal架构GPU在vllm下的模型推理优化

ChatGPT生成的文章摘要 这篇博客记录了作者在家中使用Pascal显卡运行大型模型时遇到的挑战和解决方案。随着本地大型模型性能的提升,作者选择使用vllm库进行推理。然而,作者遇到了多个技术难题,需要自行编译vllm和PyTorch,以支持Pascal架构的显卡。编译过程中,作者深入研究…