【Nuxt3】modules目录和nuxt3模块的简单介绍

这篇具有很好参考价值的文章主要介绍了【Nuxt3】modules目录和nuxt3模块的简单介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简言

记录下nuxt3项目中module的用法

modules目录

使用 modules/ 目录在应用程序中自动注册本地模块。
这是一个很好的地方,可以放置您在构建应用程序时开发的任何本地nuxt模块。

nuxt模块相当于npm包,可以发布到npm社区中

在modules/ 目录下的本地模块,会自动注册模块,无需在 nuxt.config.ts文件中注册。
自动注册的文件模式有:

  • modules/*/index.ts ,例如 modules/aa/index.ts
  • modules/*.ts , 例如 modules/one.ts

该目录和其他目录一样,按字母顺序(alphabetical orde)来注册的。

示例

该实例创建了一个名为hello的nuxt模块,然后添加了一个api路由。
启动 Nuxt 时,hello 模块将被注册,/api/hello 路由也将可用。
modules/hello/index.ts :

// `nuxt/kit` is a helper subpath import you can use when defining local modules
// that means you do not need to add `@nuxt/kit` to your project's dependencies
import { createResolver, defineNuxtModule, addServerHandler } from 'nuxt/kit'

export default defineNuxtModule({
  meta: {
    name: 'hello'
  },
  setup () {
    const { resolve } = createResolver(import.meta.url)

    // Add an API route
    addServerHandler({
      route: '/api/hello',
      handler: resolve('./runtime/api-route')
    })
  }
})

modules/hello/runtime/api-route.ts :

export default defineEventHandler(() => {
  return { hello: 'world' }
})

nuxt模块

Nuxt 提供了一个模块系统,用于扩展框架核心并简化集成。

使用 Nuxt 开发生产级应用程序时,您可能会发现该框架的核心功能还不够。Nuxt 可以通过配置选项和插件进行扩展,但在多个项目中维护这些自定义功能可能会非常繁琐、重复和耗时。这些可以在模块里使用。

这也是 Nuxt 提供模块系统以扩展内核的原因之一。Nuxt 模块是异步函数,在使用 nuxi dev 在开发模式下启动 Nuxt 或使用 nuxi build 为生产模式构建项目时按顺序运行。它们可以覆盖模板、配置 webpack 加载器、添加 CSS 库并执行许多其他有用的任务。

最重要的是,Nuxt 模块可以在 npm 包中发布。这样,它们就可以在不同项目中重复使用,并与社区共享,从而帮助创建一个高质量附加组件的生态系统。

可以简单理解为nuxt类型的npm包,它可以为项目整体扩展很多内容(css、plugin等)。

配置模块

本地开发的模块可以放到modules目录下。
npm上的需要在nuxt.config.ts配置。

安装模块后,您可以将它们添加到 nuxt.config.ts 文件的 modules 属性下。模块开发者通常会提供额外的使用步骤和细节

export default defineNuxtConfig({
  modules: [
    // Using package name (recommended usage)
    '@nuxtjs/example',

    // Load a local module
    './modules/example',

    // Add module with inline-options
    ['./modules/example', { token: '123' }],

    // Inline module definition
    async (inlineOptions, nuxt) => { }
  ]
})

例如 :
安装 pinia.
首先npm安装pinia和 @pinia/nuxt。
然后在nuxt.config.ts配置使用即可正常使用。

npm install pinia @pinia/nuxt

nuxt3 modules,Nuxt3,前端,vue

开发模块

Nuxt 模块是使用 nuxi dev 在开发模式下启动 Nuxt 或使用 nuxi build 为生产构建项目时按顺序运行的功能。有了模块,您就可以封装、正确测试并以 npm 包的形式共享自定义解决方案,而无需在项目中添加不必要的模板,也无需更改 Nuxt 本身。
官网模块开发指南

我们可以考虑两种 Nuxt 模块:

  • 在 npm 上发布的模块–你可以在 Nuxt 网站上看到一些社区模块的列表。
  • "本地 "模块,它们存在于 Nuxt 项目本身,或者在 Nuxt 配置中内联,或者作为模块目录的一部分。

在底层,Nuxt 模块定义是一个简单的、可能是异步的函数,接受内联用户选项和 nuxt 对象,以便与 Nuxt 交互。

您可以使用 Nuxt Kit 提供的高层 defineNuxtModule 辅助程序为该函数获取类型提示支持。

import { defineNuxtModule } from '@nuxt/kit'

export default defineNuxtModule((options, nuxt) => {
  nuxt.hook('pages:extend', pages => {
    console.log(`Discovered ${pages.length} pages`)
  })
})

官网不建议这样使用,它们建议使用带 meta 属性的 object-syntax 来标识模块,尤其是在发布到 npm 时。

import { defineNuxtModule } from '@nuxt/kit'

export default defineNuxtModule({
  meta: {
    // Usually the npm package name of your module
    name: '@nuxtjs/example',
    // The key in `nuxt.config` that holds your module options
    configKey: 'sample',
    // Compatibility constraints
    compatibility: {
      // Semver version of supported nuxt versions
      nuxt: '^3.0.0'
    }
  },
  // Default configuration options for your module, can also be a function returning those
  defaults: {},
  // Shorthand sugar to register Nuxt hooks
  hooks: {},
  // The function holding your module logic, it can be asynchronous
  setup(moduleOptions, nuxt) {
    // ...
  }
})

更多模块使用方法参考官网:nuxt3 moudules guide

结语

结束了。文章来源地址https://www.toymoban.com/news/detail-860082.html

到了这里,关于【Nuxt3】modules目录和nuxt3模块的简单介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nuxt3如何新建项目

    1.新建一个文件目录 nuxt-app 2.命令行cd到目录下运行 npx nuxi init nuxt-test 回车运行下 nuxt-test是文件名自己随意 3.再cd nuxt-test到目录下 运行npm install 4.运行完成后 npm run dev 启动项目 显示以下页面 1.在app.vue根目录同级新建pages文件夹 再新建一个index页面(新建文件目录参考官方文档

    2024年02月13日
    浏览(44)
  • Nuxt3环境变量配置

    Nuxt3 正式发布还不到半年,在投入生产环境使用后,遇到了不少问题,很难找到合适的解决方案,其中环境变量配置就是其中一个,之前一直未能解决,最近要上持续集成,无法绕过这个问题,所以花了点时间研究了一下,最终找到了解决方案,记录一下。 面对一个新框架,

    2024年02月01日
    浏览(58)
  • nuxt3 如何监听路由变化?

    nuxt3 如何监听路由变化?

    2024年02月11日
    浏览(57)
  • 宝塔部署Nuxt3项目(https)

    之前在服务器搭建的项目都是用http的,但是一般来说都要换成https;因为https比http更加安全,数据不再是明文传输,更不容易被攻击/被第三方广告光顾;所以就有了将http换成https的想法。 第一个需要升级的项目是我使用nuxt3重构的博客项目,期间遇到了诸多问题,所以想记录

    2024年02月04日
    浏览(49)
  • 一文搞懂Nuxt3基本用法

    在前后端分离出现之前,传统的web页面都是服务端渲染的,如JSP、PHP、Python Django,还有各种模板技术Freemarker, velocity,thymeleaf、mustache等等。其实这套技术都挺成熟的,也用了很多年。 但前后端分离出现后,带来两个好处: 工程上的分工,让前端专门盯前端技术,开发效率上

    2024年02月05日
    浏览(50)
  • Nuxt3重点特性使用举例记录

    小聊: 基于vue.js,用于SSR渲染解决SEO,但不仅限于此。不用于局限的眼光去看它,使用它会比原生vue3更加流畅舒适,性能也更高。在熟悉vue3的基础上学习成不算高。另外,它完全支持vue3语法,相比于vue3,它改进了vue3的一些功能,Nuxt3有一些“约定”,你可以理解为是一些

    2024年02月07日
    浏览(44)
  • nuxt3使用记录一:框架摸索

    之前直接用的Vue3,后面为了seo,了解到Vue3用SSR渲染很复杂,甚至衍生了出nuxt3这个框架,这个框架在github已经有50K star了,也已经是个非常成熟的框架了,不过我感觉国内的资料也不多,看来国内接受新事物的速度依然很慢,大厂估计都自研了,小公司就用老方法PHP啥的。

    2024年04月10日
    浏览(43)
  • nuxt3:接口转发,实现跨域

    一、背景 当接口请求的域名和项目适用的域名不一致时候,可以适用接口转发的方法实现跨域。 原理:服务的请求接口是不跨域的,nuxt3服务端请求接口后转发给localhost:3000。 本地开发,生产环境均可以使用。 二、理解服务器中间件 Nuxt 将自动读取 ~/server/middleware  中的任何

    2024年02月14日
    浏览(39)
  • Nuxt3实战系列之网络请求篇

    Nuxt3提供了4种方式使得我们可以异步获取数据 useAsyncData useLazyAsyncData (useAsyncData+lazy:true) useFetch useLazyFetch (useFetch+lazy:true) 4种方式中,其实核心的就是 useAsyncData 和 useFetch 。这两个方法不同于Nuxt2中的 asyncData 和 fetch 。接下来我们先来好好分析下这两个方法。 我们知道,

    2024年02月08日
    浏览(63)
  • nuxt3:我们开始吧-开发-配置-部署

    一、背景介绍 2022 年 11 月 16 日,全球最大的 Nuxt 会议 Nuxt Nation 2022 在线举行,并正式发布了 Nuxt.js 3.0 的第一个稳定版本。Nuxt 3 是基于  Vite 、 Vue3  和  Nitro  的 Nuxt 框架的现代重写,具有一流的 Typescript 支持,是两年多研究、社区反馈、创新和实验的结果。为每个人提供了

    2023年04月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包