在 Next.js 中,导入 SVG 并使用它的方法与常规 React 项目类似。以下是如何在 Next.js 中导入和使用 SVG 的步骤:
1、放置 SVG 文件
首先,将你的 SVG 文件放置在项目的某个目录中,例如 public/static/images。
2、导入 SVG
你可以使用 import 语句将 SVG 导入为 React 组件。为了做到这一点,你可能需要使用一个工具,如 react-svg 或 @svgr/webpack,将 SVG 转换为可以在 React 中使用的组件。但是,Next.js 已经内置了对 SVG 的支持,所以你可以直接导入 SVG 而不需要任何额外的配置。
import MySvg from '../static/images/my-svg.svg';
3、使用 SVG
导入 SVG 后,你可以像使用其他 React 组件一样使用它。
function MyComponent() { return ( <div> <MySvg /> </div> );
} export default MyComponent;
4、优化 SVG
如果你有很多 SVG 并且想要更好地管理它们,你可能会想要将它们组织到一个目录中,并动态地导入它们。为此,你可以使用动态导入 (import()) 语法。
const getSvg = (name) => import(`../static/images/${name}.svg`); function MyComponent() { const MySvg = React.lazy(() => getSvg('my-svg')); return ( <div> <React.Suspense fallback={<div>Loading...</div>}> <MySvg /> </React.Suspense> </div> );
} export default MyComponent;
注意事项
当导入 SVG 时,Next.js 会自动将其转换为一个 React 组件。这意味着你可以像处理其他 React 组件一样处理 SVG,例如添加样式、事件处理程序等。
如果你希望 SVG 保持其原始大小,你可能需要在导入 SVG 时删除其宽度和高度属性,或者使用 CSS 重置它们。