Skip to content

大家好,我是村长。欢迎大家开启 Nuxt 全栈开发学习之旅!

第一篇我们称为概念篇。为什么我们要先从概念讲起哪?主要原因是不少小伙伴前端开发的时间不久,大家普遍接触的是 SPA 应用开发,且仅限于前端部分,对一些传统开发模式、渲染模式及服务端知识知之甚少,所以如果我们直接开始项目开发,可能会让大家对一些操作感到疑惑,因此我们先了解概念,给大家做一些铺垫。

在概念篇中,我们主要给大家介绍以下方面内容:

  • Nuxt 特性和架构;
  • 四种渲染模式差异和选择。

Vue 栈上层框架最佳选择

Nuxt 是一个基于 Vue 的上层全栈通用框架,它提供了大量优秀特性提升开发效率和体验,因此是 Vue 栈上层框架的最佳选择之一。

尤雨溪曾多次在各种前端大会中大力推荐 Nuxt,去年底 Nuxt3 稳定版正式发布,这是我们上手 Nuxt3 的最佳时刻,不管是 API,还是框架稳定性,亦或生态繁荣程度大家都不需要担心,我们会在后面教程中给大家演示诸多三方库的整合方法。

同时 Nuxt 也可以在全栈开发、SPA(单页应用)、SSR(服务端渲染)同构开发、SSG(静态站点生成)等场景发挥巨大作用,我们在后续的案例和项目中都会讨论和演示这些开发模式。

下面我们就带大家快速体验 Nuxt 提供的这些优秀特性。

开箱即用的开发环境

开发者对一款现代框架的一个重要要求就是开箱即用。在这方面 Nuxt 提供了如下能力:

  • 整合 Vue3 作为视图引擎;
  • 整合 Webpack5 和 Vite 作为打包工具;
  • 提供最新 ES 语法,零配置 TS 支持;
  • 内置 vue-router,基于文件的路由;
  • 内置 SSR 友好的全局状态管理模块;
  • 内置数据访问模块 useFetch 等等。

良好的开发体验

良好的开发体验主要来源于效率工具和避免重复劳动,这方面我们看一下 Nuxt 提供的能力:

  • 基于文件的路由支持;
  • 组件、依赖库、工具集的自动导入;
  • 内置的数据获取模块和新的编程范式;
  • 零配置的 TS 支持;
  • 插件、模块、中间件等多种复用机制。

服务端能力

Nuxt 内置了 Nitro 服务端引擎,能够同时提供 SSR 和 API 路由支持,这也就是说,除了能够提供服务端渲染能力,我们还能编写服务端接口,这使我们拥有了全栈开发能力。另外 API 兼容 node、connect、express,未来也可以把应用发布到 Node.js、Serverless 等服务器运行环境。

不同场景解决方案

为了满足开发者多种场景开发需求,Nuxt 提供了 5 种渲染模式:

  • 服务端渲染 SSR;
  • 客户端渲染 SPA;
  • 全静态内容生成 SSG;
  • 混合渲染模式 Hybrid;
  • 边缘渲染 Edge-render。

在后面章节中,我们也将给大家详细介绍这几种模式的异同和选择。

扩展能力

比起传统 Vue 项目,Nuxt 给予我们更多扩展能力和复用能力:

  • 中间件:针对单个路由的扩展;
  • 插件:针对 NuxtApp 的扩展;
  • 模块:扩展 Nuxt 核心能力以及简化整合能力;
  • 层:针对 Nuxt 应用的组件、工具和配置复用能力。

Nuxt 整体架构

Nuxt 框架由一些包组成,它们各有不同作用:

  • 核心引擎:nuxt,实现核心功能,串联所有模块;

  • 打包:@nuxt/vite-builder、@nuxt/webpack-builder;

  • 命令行工具:nuxi,创建、调试、打包项目等;

  • 服务端引擎:nitro,服务端渲染,API 路由;

  • 开发包:@nuxt/kit,用于 Nuxt 模块开发;

  • Nuxt 2 桥:@nuxt/bridge,用于 Nuxt2 项目中使用 Nuxt3 特性。

总结

本节全面了解 Nuxt 特性,以及它能给我们开发者带来什么。同时了解了 Nuxt 框架中各个组成包,实际开发中,由于有 nuxt 作为串联,除了 nuxi 之外,我们很少接触到其他包。但是如果我们要开发 Nuxt 模块,我们就需要用到 @nuxt/kit,或者我们想要在已有的 Nuxt2 项目中使用 Nuxt3 特性,我们就会需要用到 @nuxt/bridge。

预告

下一节,我们将全面了解 Nuxt 提供的 5 种渲染模式,这将为后续项目开发打好基础。

Released under the MIT License.