Nuxt2快速上手(一)路由、异步数据、中间件等

news/2024/10/25 17:26:59/

文章目录

  • 安装项目
  • 路由
    • 动态路由(摘自官网)
    • 参数校验
    • 路由动画效果
      • 全局过渡
      • 局部过渡
    • 路由守卫(全局、局部)
  • 异步数据
    • Promise方式
  • 插件
  • Layers
  • 中间件 - middleware
  • Vuex状态树
  • API(这里只说一些关键的API)
    • asyncData
  • 关键的一些包
    • nuxt/axios

在这里插入图片描述

我们这里先学习一下Nuxt2,日后再学习Nuxt3

安装项目

npx create-nuxt-app <项目名>

路由

Nuxt.js 会依据 pages 目录中的所有 *.vue 文件生成应用的路由配置
也就是说我们直接配置就可以了,page结构对应页面结构

我们在pages目录下,我们可以看到在.next目录下,有相关的路由文件生成,这里是nuxt直接帮我们做的

动态路由(摘自官网)

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

router: {routes: [{name: 'index',path: '/',component: 'pages/index.vue'},{name: 'users-id',path: '/users/:id?',component: 'pages/users/_id.vue'},{name: 'slug',path: '/:slug',component: 'pages/_slug/index.vue'},{name: 'slug-comments',path: '/:slug/comments',component: 'pages/_slug/comments.vue'}]
}

参数校验

Nuxt.js 提供了一个校验参数的方法validate

export default {validate({ params }) {// 必须是number类型return /^\d+$/.test(params.id)}
}

路由动画效果

全局过渡

我们找到配置的公共的css样式,里面添加两种配置
在nuxt.config.js配置文件中,这个地方指定了配置文件

module.exports = {css:['@/assets/gobal.css']
}
.page-enter-active{}
.page-leave-active{}

局部过渡

路由守卫(全局、局部)

异步数据

Nuxt.js 提供了asyncData的方法,使得我们可以设置组件的数据之前能异步获取或处理数据
Nuxt.js 有多种调用asyncData的方式

Promise方式

export default {asyncData({ params }) {return axios.get(`https://my-api/posts/${params.id}`).then(res => {return { title: res.data.title }  // 相当于data中的数据,可以{{}}进行调用})}
}

插件

nuxt 根目录下有一个plugins文件夹,这里就是平常存放插件的文件目录,然后通过nuxt.config.js中plugins配置,就可以使用插件了
Nuxt.js 允许您在运行 Vue.js 应用程序之前执行 js 插件。这在您需要使用自己的库或第三方模块时特别有用。

Layers

中间件 - middleware

Vuex状态树

API(这里只说一些关键的API)

asyncData

nuxt.js 允许在组件渲染之前进行异步获取数据

  • 在服务端渲染期间,asyncData方法会在组件实例化之前被调用,以确保在渲染HTML之前获取到数据
  • 在客户端渲染期间,asyncData方法会在路由参数发生变化时被调用,以确保切换路由时获取到最新的数据

因此,asyncData方法可以在服务端和客户端两个环境中获取数据,并且可以确保在组件渲染之前获取数据,从而保证了页面的性能和可访问性

关键的一些包

nuxt/axios

本人另一篇博客(Nuxt.js - nuxt/axios)


http://www.ppmy.cn/news/34909.html

相关文章

为什么 ChatGPT 输出时经常会中断,需要输入“继续” 才可以继续输出?

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;蚂蚁集团高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《EffectiveJava》独家解析》专栏作者。 热门文章推荐…

vue3+ts 开发效率提升

1、vite pnpm项目初始化 pnpm&#xff1a; 比npm或yarn快10倍 pnpm与其他包管理器&#xff08;如npm和Yarn&#xff09;的不同之处在于它使用一种称为“硬链接”的独特安装方法。当你使用PNPM安装一个包时&#xff0c;它并不会将包的文件复制到每个项目的node_modules目录中&a…

【北大青鸟天府校区的Java专业怎么样?】

北大青鸟天府校区是北大青鸟总部在西南投资兴办的重点校区&#xff0c;拥有极为强大的外部教育资源和就业资源&#xff0c;使咱们的学员能够享受更好、更完善的教学资源。超过23年的办学经验&#xff0c;培养了超过10000位学员&#xff0c;保障就业&#xff0c;学员就业率达到9…

cpp-httplib实现HTTP Server接收带参数的URL

URL中符号意义 / 分隔目录和子目录 &#xff1f;分隔实际的URL和参数 & URL中指定的参数间的分隔符 URL中指定的参数的值 表示空格&#xff08;在URL中不能使用空格&#xff09; # 表示书签 在RESTful风格的API中常见的URL样式&#xff1a; 带时间路径的URL http…

Flutter GetX 实现 ChatGPT 简单聊天界面

Flutter 是一款跨平台的移动应用开发框架&#xff0c;而 GetX 是 Flutter 中一种简单易用的状态管理和路由管理工具。本篇我们将使用 Flutter 和 GetX 实现一个简单的聊天界面&#xff0c;以与 ChatGPT 进行交互。 我们需要在 Flutter 项目中引入 GetX 库。在pubspec.yaml文件…

组件自定义事件

绑定 组件自定义事件跟子传递很像 相同的是无论你使用的是props或者自定义事件&#xff0c;都是要使用到回调函数 子传父 需要亲自是收一下&#xff0c;然后调用一下 而自定义事件是没有给子组件传东西&#xff0c;只是这个当做事件的回调而已 对比一下student并没有数据来接收…

做Vinted要注意什么?详细避坑指南参考

最近有很多人向东哥我咨询vinted这个平台&#xff0c;很多朋友都是想咨询vinted这个平台好做吗&#xff1f;主要卖什么商品好卖一点&#xff0c;有没有什么注意事项。今天东哥就一一给大家解答。 Vinted平台好做吗&#xff1f; Vinted面向的市场主要是欧美市场&#xff0c;那平…

被隐藏的过程——预处理

文章目录0. 前言1. 程序的翻译环境和执行环境2. 被隐藏的过程2.1 翻译环境2.2 编译3.2.1 预编译3.2.2 编译2.2.3 汇编2.3 链接2.4 运行环境3. 预处理3.1 预定义符号3.2 #define3.2.1 #define定义标识符3.2.2 #define定义宏3.2.3 #define替换规则3.2.4 #和##3.2.5 带副作用的宏参…