当前位置: 首页 > article >正文

NextJS开发:Image组件的使用及缺陷

Next.js 中的 Image 组件相比于传统的 img 标签有以下几个优点:

懒加载:Image 组件自带懒加载,当页面滚动到 Image 组件所在位置时才会加载图片,从而加快页面的渲染速度。

自动优化:Image 组件会自动将图片压缩、转换格式、调整大小,以达到更好的性能和用户体验。

支持多种图片源:Image 组件支持使用本地文件、远程 URL、云存储等多种方式来加载图片,更加灵活方便。

支持响应式图片:Image 组件可以根据不同设备屏幕大小来加载不同分辨率的图片,以达到最佳的视觉效果和性能表现。此外,Image 组件还可以使用 layout 属性来控制图片的布局方式,包括填充、响应式、不变形等多种方式。

总之,Next.js 中的 Image 组件在性能、用户体验、开发效率等方面都优于传统的 img 标签,因此在开发过程中应当优先考虑使用 Image 组件。

<Image src={props.data.thumb}
             width={800} height={600} alt={""}
             className=" w-full overflow-hidden rounded-md cursor-pointer mb-3"
             />

NextJS中的Image,加载其他域名地址下图片会出现如下错误:

 ⨯ Error: Invalid src prop (https://images.xxx.com/photo/2023/dd2434067ce2093f77ef0a2b22725913.png) on `next/image`, hostname "images.xxx.com" is not configured under images in your `next.config.js`
See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host
    at Array.map (<anonymous>)

解决方法:
next.config.js文件中加入

const nextConfig = {
  reactStrictMode: true,
  images: {
    domains: ['images.xxx.com']
  }
}

如果你项目中有不确定的任意域名图片的需求,还是用img标签吧,没有找到nextConfig中通配符允许任意域名的配置方式。

使用img标签,npm run build可能会报如下警告

./src/app/(components)/article-row.tsx
18:11  Warning: Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element  @next/next/no-img-element
18:11  Warning: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.  jsx-a11y/alt-text

改为

<picture>
    <img src={props.data.thumb}/>
</picture>

警告不再出现


http://www.kler.cn/a/144678.html

相关文章:

  • 大数据平台测试-一次生产P2故障记录
  • 【数据结构/C++】栈和队列_顺序栈
  • STM32 启动文件分析
  • android shape绘制半圆
  • gitee推荐-1Panel
  • 英特尔和 ARM 将合作开发移动芯片技术,如何看待双方合作?
  • Mybatis-Plus 租户使用
  • proto语法学习笔记
  • docker devicemapper: Error running DeleteDevice dm_task_run failed
  • 用Python进行数据分析:探索性数据分析的实践与技巧(文末送书)
  • Robots 元标签与 X-Robots 标签
  • Proteus仿真--用DS1302与12864LCD设计的可调式中文电子日历
  • SpringMVC系列-7 @CrossOrigin注解与跨域问题
  • 基于springboot实现实习管理系统的设计与实现项目【项目源码+论文说明】计算机毕业设计
  • python web项目导包规范
  • 深度学习之基于Tensorflow银行卡号码识别系统
  • ubuntu环境删除qtcreator方法
  • Java学习路径:入门学习、深入学习、核心技术,操作案例和实际代码示例
  • STM32出现 Invalid Rom Table 芯片锁死解决方案
  • Vue3 响应式数据 reactive使用