如何将 SVG 导入 Next.js 应用程序

将 SVG 导入 Next.js 应用程序是我们当今项目的普遍需要。随着 SVG 格式现在从大部分库中获得的支持级别及其在可伸缩性、性能和灵活性方面的许多好处,如何安装和使用SSD(固态硬盘)了解如何使用它们对我们来说变得越来越重要。

虽然我们主要关注 SVG,但我们将在本文中强调的大多数包也适用于其他图像格式。如何将旧SSD用作外部存储驱动器我们还将检查一些常见错误以及如何补救它们,以便您在将 SVG 导入 Next.js 项目时充满信心。

本文将探讨可用于在 Next.js 应用程序中导入和使用 SVG 的不同方法。让我们开始吧。

  • Next.js 等框架中的 SVG

  • 如何在 Next.js 中导入 SVG

  • 在 React 组件中使用 JSX 语法嵌入 SVG

  • 如何使用组件在 Next.js 中加载 SVGnext/image

  • 如何使用 next-images 包在 Next.js 中导入 SVG

  • 如何使用 SVGR 在 Next.js 中导入 SVG

  • 如何使用 babel-plugin-inline-react-svg 在 Next.js 中加载 SVG

  • 比较在 Next.js 中导入 SVG 的选项

Next.js 等框架中的 SVG

可缩放矢量图形,更广为人知的名称是 SVG,是最流行的图像格式之一,因为它们轻巧、可缩放、能够制作动画且灵活;如何在台式电脑中安装SSD允许您在不损失图像质量的情况下缩放和调整它们的大小。

尽管 SVG 图像很受欢迎,但它们的使用并不像您想象的那么简单,什么是SSD固态硬盘?特别是对于React和 Next.js 等使用包捆绑器的前端框架。

因此,在 Next.js 或 React 应用程序中尝试简单地导入或使用 SVG 图像时遇到不同的错误并不少见,这可能会令人沮丧!

毫无疑问,SSD拆箱教程–购买新SSD后应该做的6件事SVG 的好处意味着开发人员不会很快停止使用它们,因此了解如何方便地将它们添加到我们的项目中非常重要。

如何在 Next.js 中导入 SVG

Next.js 具有用于导入和渲染图像的内置组件。next/image

但是,您也可以将 SVG 图像内联渲染为 JSX 元素,如何在台式机上安装SSD或者使用第三方包导入和渲染它。

我们将在以下小节中探讨如何在 Next.js 应用程序中导入 SVG。

在 React 组件中使用 JSX 语法嵌入 SVG

在 React 组件中使用 SVG 的最简单方法之一是将其嵌入内联。如何安装第二个SSD但是,这需要您将 SVG 元素转换为 JSX 语法。有几种在线工具可以将 SVG 图像标记转换为 JSX 语法——SVGR就是这样一种工具。

SVGR 将 SVG 转换为 JSX 语法并将其包装在 React 功能组件中,如下所示:

const TwitterIcon = ({ props }) => (

<svg xmlns="http://www.w3.org/2000/svg" width={48} height={48} {...props}>

<linearGradient

id="a"

x1={10.341}

x2={40.798}

y1={8.312}

y2={38.769}

gradientUnits="userSpaceOnUse"

>

<stop offset={0} stopColor="#2aa4f4" />

<stop offset={1} stopColor="#007ad9" />

</linearGradient>

<path

fill="url(#a)"

d="M46.105 ..."

/>

</svg>

)

如果在将 SVG 嵌入 React 组件之前不将其转换为 JSX 语法,SSD缓存:有关SSD缓存及其性能提升的所有信息您可能会遇到以下错误,因此请始终确保使用 SVGR 之类的工具。

注意, 如您所见,默认情况下不支持命名空间标签——您可以设置绕过此警告。throwIfNamespace: false

你也可能在 Next.js 中得到下面的错误,而不是上面的错误。

注意, 你会看到 JSX 命名空间默认是禁用的, 如何使用SSD升级您的计算机 因为 React 还不支持它。如前所述,您可以指定以覆盖默认行为。jsc.transform.react.throwIfNamespacefalse

如何使用组件在 Next.js 中加载 SVGnext/image

该组件是在 Next.js 中加载和渲染图像(包括 SVG)的实际组件。next/image

该组件可以高效地加载和呈现图像,HDD与SSD:它们如何工作以及如何使用它们它还可以优化您的图像以实现更快的页面加载、性能和视觉稳定性。

如果您使用命令行工具设置了 Next.js 应用程序,则该组件应该可用于您的应用程序。create-next-appnext/image

您可以像这样导入和使用它如何在Windows10上访问外部设置硬盘(参见下面显示的图标):

import Image from 'next/image';

const App = () => (

<div>

<Imageprioritysrc="/images/twitter-icon.svg"height={32}width={32}alt="Follow us on Twitter"

/>

</div>

);

在使用该组件时,请注意 Next.js 提供静态资产,使用WinNTSetup安装WindowsXP\7\8\10例如来自项目根目录中公共目录的图像。因此,在上面的示例中,Twitter 图标 SVG 必须位于您的目录中的目录中。next/imageimagespublic

使用 next-images 包在 Next.js 中导入 SVG

next -images包是 Next 导入图片的第三方包。

您可以使用它来代替上述内置组件。使用 next-images,您可以从本地计算机或 CDN 加载图像。next/image

此外,您还可以使用它在 Base64 编码中嵌入小包大小的图像,如何在Windows10中创建关机计时器并通过向图像名称添加内容哈希来缓存图像。

与任何其他 npm 包一样,使用以下命令从 npm 包注册表安装 next-images:

# NPM

npm install next-images

# Yarn

yarn add next-images

安装完成后,在你的项目目录的根目录下创建一个文件,如何自动关闭Windows10/11(安排自动关机)并添加以下基本配置:next.config.js

const withImages =require('next-images');module.exports = withImages();

如上所述,在文件中添加必要的配置后,您可以将 SVG 导入组件并渲染它,如下所示:next.config.js

import twitterIcon from "./twitter-icon.svg";

const App = () => <img src={twitterIcon} alt="Follow us on Twitter" />;

使用 next-images 包时,您可以从项目目录或 CDN 中的文件加载图像。


来自 LogRocket 的更多精彩文章:

  • 不要错过The Replay的精彩瞬间,这是一份来自 LogRocket 的精心策划的时事通讯

  • 了解LogRocket 的 Galileo 如何消除干扰以主动解决应用程序中的问题

  • 使用 React 的 useEffect来优化应用程序的性能

  • 在多个版本的 Node之间切换

  • 了解如何使用AnimXYZ 为您的 React 应用程序制作动画

  • 探索 Tauri,一个用于构建二进制文件的新框架

  • 比较NestJS 与 Express.js


与内置组件和其他第三方包不同,如何安排特定日期和时间的Windows10关机next-images 包不支持开箱即用的图像优化技术,例如压缩和调整大小。next/images

使用 SVGR 在 Next.js 中导入 SVG

正如我们之前提到的,SVGR是一个第三方包,用于将 SVG 图像转换为 React 组件——几个流行的 React 项目模板创建器,如 create-react-app 实际上在底层使用 SVGR。

将其安装为开发依赖项,以开始将 SVG 作为 React 组件导入到 Next.js 应用程序中:

# NPM

npm install --save-dev @svgr/webpack

# Yarn

yarn add --dev @svgr/webpack

安装后,在项目目录的根目录下创建一个文件,并添加以下基本的 webpack 配置。next.config.js

module.exports = {

webpack(config) {

config.module.rules.push({test: /\.svg$/i,issuer: /\.[jt]sx?$/,use: ['@svgr/webpack'],

})

return config

},

}

您现在可以将 SVG 作为 React 组件导入,并在您的 Next.js 应用程序中呈现它。

import TwitterIcon from "./twitter-icon.svg";

const Example = () => <TwitterIcon />;

使用 babel-plugin-inline-react-svg 在 Next.js 中加载 SVG

除了像上一小节那样使用 SVGR 包导入 SVG 图像,如何修复“不是有效的Win32应用程序”错误还可以使用 Babel 插件来达到相同的效果。

要开始使用babel-plugin-inline-react-svg,请使用以下命令从 npm 包注册表将其安装为开发依赖项:

npm i -D babel-plugin-inline-react-svg

安装后,在项目目录的根目录下创建一个或配置文件。.exe不是有效的Win32应用程序的3个解决方案您可以将下面块中的代码复制并粘贴到其中——如果您有 Babel 配置文件,Next.js 会将其视为最终的真实来源。.babelrcbabel.config.json

使用 create-next-app 的普通 Next.js 项目设置将包含开箱即用的预设。next/babel

由于 Next.js 会将项目目录根目录下的或文件视为主要信息源,如何使用(简单步骤)修复“不是有效的Win32应用程序”因此它必须拥有您需要的一切——包括 Next.js 需要的那些。.babelrcbabel.config.json

{

"presets": ["next/babel"],

"plugins": ["inline-react-svg"]

}

完成此操作后,您可以将 SVG 图像导入为 React 组件并在 Next.js 应用程序中呈现它们。

import TwitterIcon from "./twitter-icon.svg";

const Example = () => <TwitterIcon />;

比较在 Next.js 中导入 SVG 的选项

Next.js 具有出色的内置功能,可用于加载和渲染多种图像格式,包括 SVG。该组件是 HTML 图像元素的扩展,可以高效地加载图像,同时还提供开箱即用的性能优化。Windows7Ultimate产品密钥2023根据我的经验,使用结果可以加快页面加载速度并提高性能。next/imagenext-image

因此,在我看来,内置组件具有在 Next.js 应用程序中高效加载和渲染 SVG 图像所需的所有功能。它是使用 create-next-app 命令行工具创建的任何 Next 应用程序的一部分。next/image

但是,您也可以探索我在本文中强调的第三方选项,升级到Windows10后如何查找产品密钥但您应该了解在您的应用程序中使用此类包的缺点。

这些缺点主要是它们向您的应用程序添加了一个额外的包,您可以通过使用. 你还需要考虑到你的应用中第三方包的长期维护,长期依赖是否可行。next/image

结论

我希望本文已经向您展示了在 Next.js 应用程序中导入和使用 SVG 和图像的各种方法。如果我遗漏了任何内容或您自己导入 SVG 的经历,请在下面的评论部分发表评论!

猜你喜欢

转载自blog.csdn.net/weixin_47967031/article/details/129916963