剽达崖 发表于 2025-6-6 15:35:48

Nuxt框架中内置组件详解及使用指南(五)

title: Nuxt框架中内置组件详解及使用指南(五)
date: 2024/7/10
updated: 2024/7/10
author:<template>
<template>
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><NuxtImg
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>src="/path/to/image.png"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>width="200"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>height="200"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>sizes="sm:100px md:200px lg:400px"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>placeholder="./placeholder.png"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>provider="cloudinary"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>preset="cover"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>format="webp"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>quality="80"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>fit="cover"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>modifiers="{ roundCorner: '0:100' }"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>preload
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>loading="lazy"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>:nonce="nonce"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>/>
</template><NuxtImg src="/path/to/image.png" />
</template>cmdragon
excerpt:
摘要:本文详细介绍了Nuxt框架中和组件的使用方法与配置,包括安装、基本用法、属性详解、示例代码以及高级功能如事件处理、自定义图片属性和图片格式回退策略。同时,还简述了组件的功能与基本用法,展示了如何将组件内容传送到DOM中的不同位置,特别是对于模态框和侧边栏等UI元素的布局优化。
categories:

[*]前端开发
tags:

[*]NuxtJS
[*]组件
[*]图像
[*]优化
[*]响应
[*]预览
[*]传送


扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长

Nuxt 中组件的使用指南与示例

Nuxt 提供了一个<template>
<template>
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><NuxtImg
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>src="/path/to/image.png"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>width="200"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>height="200"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>sizes="sm:100px md:200px lg:400px"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>placeholder="./placeholder.png"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>provider="cloudinary"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>preset="cover"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>format="webp"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>quality="80"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>fit="cover"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>modifiers="{ roundCorner: '0:100' }"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>preload
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>loading="lazy"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>:nonce="nonce"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>/>
</template><NuxtImg src="/path/to/image.png" />
</template>组件来处理自动图像优化。
安装与配置

首先,确保你已经安装了Nuxt.js,并且你的项目中已经启用了Nuxt Image模块。这通常在项目创建时自动完成,如果没有,你可以按照以下步骤操作:
npx nuxi@latest module add image基本用法

组件可以直接替代原生[图片上传失败...(image-ce4c63-1720592953905)]标签,并输出一个原生的img标签,没有任何包装器。以下是如何使用它的基本示例:
<template>
<template>
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><NuxtImg
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>src="/path/to/image.png"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>width="200"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>height="200"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>sizes="sm:100px md:200px lg:400px"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>placeholder="./placeholder.png"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>provider="cloudinary"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>preset="cover"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>format="webp"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>quality="80"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>fit="cover"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>modifiers="{ roundCorner: '0:100' }"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>preload
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>loading="lazy"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>:nonce="nonce"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>/>
</template><NuxtImg src="/path/to/image.png" />
</template>这将创建一个指向/path/to/image.png的img标签。
属性详解

以下是一些主要的属性及其用法:

[*]src: 图像文件的路径。应采用目录中静态图像的绝对路径形式。

[*]width / height: 指定图像的宽度/高度。

[*]sizes: 指定响应大小。

[*]densities: 为不同像素密度的屏幕生成特殊图像版本。

[*]placeholder: 在实际图像完全加载之前显示占位符图像。

[*]provider: 使用其他提供程序而不是默认提供程序。

[*]preset: 使用预定义的图像修饰符集。

[*]format: 指定图像的格式。

[*]quality: 生成图像的质量。

[*]fit: 指定图像的尺寸。

[*]modifiers: 使用提供程序的额外修饰符。

[*]preload: 预加载图像。

[*]loading: 控制图像的加载行为。

[*]nonce: 用于内容安全策略的加密随机数。

示例

以下是一个使用组件的完整示例,展示了如何结合使用多个属性:
<template>
<template>
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><NuxtImg
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>src="/path/to/image.png"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>width="200"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>height="200"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>sizes="sm:100px md:200px lg:400px"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>placeholder="./placeholder.png"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>provider="cloudinary"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>preset="cover"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>format="webp"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>quality="80"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>fit="cover"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>modifiers="{ roundCorner: '0:100' }"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>preload
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>loading="lazy"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>:nonce="nonce"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>/>
</template><NuxtImg src="/path/to/image.png" />
</template>在这个示例中,我们使用了多个属性来优化和展示图像。
事件

组件支持原生事件,你可以通过监听这些事件来执行特定的操作。例如:
<template>
<template>
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><NuxtImg
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>src="/path/to/image.png"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>width="200"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>height="200"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>sizes="sm:100px md:200px lg:400px"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>placeholder="./placeholder.png"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>provider="cloudinary"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>preset="cover"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>format="webp"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>quality="80"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>fit="cover"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>modifiers="{ roundCorner: '0:100' }"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>preload
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>loading="lazy"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template><template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>:nonce="nonce"
<template>
<NuxtImg
    src="/path/to/image.png"
    @load="handleImageLoad"
/>
</template>/>
</template><NuxtImg src="/path/to/image.png" />
</template>在这个示例中,当图像加载完成时,handleImageLoad函数将被调用。
Nuxt 3 中组件的使用指南与示例

引入组件

在 Nuxt.js 项目中,您可以直接在页面或组件中引入  和  组件。
import { NuxtPicture, NuxtImg } from '#components';示例代码

解释

高级配置

设置回退格式

自定义图片属性

基本用法

1. 传送到 body

2. 客户端传送

余下文章内容请点击跳转至 个人博客页面 或者 扫码关注或者微信搜一搜:编程智域 前端至全栈交流与成长,阅读完整的文章:Nuxt框架中内置组件详解及使用指南(五) | cmdragon's Blog
往期文章归档:


[*]Nuxt框架中内置组件详解及使用指南(四) | cmdragon's Blog
[*]Nuxt框架中内置组件详解及使用指南(三) | cmdragon's Blog
[*]Nuxt框架中内置组件详解及使用指南(二) | cmdragon's Blog
[*]Nuxt框架中内置组件详解及使用指南(一) | cmdragon's Blog
[*]Nuxt3 的生命周期和钩子函数(十一) | cmdragon's Blog
[*]Nuxt3 的生命周期和钩子函数(十) | cmdragon's Blog
[*]Nuxt3 的生命周期和钩子函数(九) | cmdragon's Blog
[*]Nuxt3 的生命周期和钩子函数(八) | cmdragon's Blog
[*]Nuxt3 的生命周期和钩子函数(七) | cmdragon's Blog
[*]Nuxt3 的生命周期和钩子函数(六) | cmdragon's Blog
[*]Nuxt3 的生命周期和钩子函数(五) | cmdragon's Blog
[*]Nuxt3 的生命周期和钩子函数(四) | cmdragon's Blog
[*]Nuxt3 的生命周期和钩子函数(三) | cmdragon's Blog
[*]Nuxt3 的生命周期和钩子函数(二) | cmdragon's Blog
[*]

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

艺轫 发表于 2025-11-21 09:29:32

谢谢分享,辛苦了

均浇 发表于 2025-11-21 15:20:16

收藏一下   不知道什么时候能用到
页: [1]
查看完整版本: Nuxt框架中内置组件详解及使用指南(五)