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

【React】在 React 项目中引入图片

import

import React from 'react';
import myImage from './path/to/image.jpg';

function MyComponent() {
  return <img src={myImage} alt="description" />;
}

require(虽然现在比较少用)

import React from 'react';

function MyComponent() {
  const myImage = require('./path/to/image.jpg');
  return <img src={myImage} alt="description" />;
}

直接使用图片的 URL

(适用于公共资源或外部链接)

import React from 'react';

function MyComponent() {
  return <img src="https://example.com/path/to/image.jpg" alt="description" />;
}

如果要选择哪种方式更好,我个人推荐使用 import 语句。因为这种方式能够更好地集成到现代化的 JavaScript 打包工具(如 Webpack)中,提供诸如代码分割、缓存优化等功能。此外,import 语句更加符合 ES6+ 规范,使代码可读性和可维护性都有所提升。

其他

1)使用 CSS 背景图

.background-image {
  background: url('./path/to/image.jpg');
}

在 CSS 模块中:可以通过样式绑定背景图片,适用于背景图片或装饰性小图标。

2)使用 CSS-in-JS 库 如果你在使用 styled-components、emotion 等 CSS-in-JS 库,也可以在 JavaScript 中直接定义样式:

复制代码
import styled from 'styled-components';
import myImage from './path/to/image.jpg';

const ImageContainer = styled.div`
  background: url(${myImage}) no-repeat center center;
  width: 100px;
  height: 100px;
`;

3)结合 Webpack 加载器 Webpack 通常会配置文件加载器(如 file-loaderurl-loader),以便在引入图片时进行优化,具体配置可以参考 webpack 文档。

4)动态引入图片 有时我们需要根据某些条件动态引入图片,这种情况下可以使用 import() 动态导入:

import React, { useState, useEffect } from 'react';

function MyComponent() {
  const [image, setImage] = useState(null);

  useEffect(() => {
    import('./path/to/image.jpg').then(img => {
      setImage(img.default);
    });
  }, []);

  if (!image) return <p>Loading...</p>;

  return <img src={image} alt="description" />;
}

5)SVGR 处理 SVG 如果处理的是 SVG 图像,可以将其作为 React 组件导入:

import React from 'react';
import { ReactComponent as MySvg } from './path/to/image.svg';

function MyComponent() {
  return <MySvg />;
}

http://www.kler.cn/news/358986.html

相关文章:

  • 垃圾回收器和垃圾回收机制(简单介绍,用于回忆总结)
  • 约80%的巴西消费者热捧跨境电商平台Shopee
  • HI6338 (DIP-8内置75W方案)
  • .net framework 3.5sp1插件怎么启动
  • 关于elementui 时间选择器选中的时间和显示的时间不一致的问题
  • Axure复选框全选反选取消高级交互
  • 如何用bat脚本修改windows环境下jenkins服务的登陆密码
  • 展望机器学习和神经网络的未来
  • 【Python】基础--文件处理
  • C++,STL 035(24.10.20)
  • 蜘蛛日志在线分析工具源码 快速分析搜索引擎网络爬虫抓取记录
  • react18中实现简易增删改查useReducer搭配useContext的高级用法
  • Python中3个常见网络爬虫库
  • 019_Baseline_optimization_in_Matlab中考虑优化的基线方法
  • AOC商用显示器打造金融行业解决方案,搭建金融服务新模式!
  • 前端权限:接口权限,路由权限,按钮权限
  • 贪心算法笔记
  • 笔记本电脑U口保护分享
  • Vue利用axios发送请求并代理请求
  • 国产服务器KyLinV10操作系统部署harbor仓库时报错:open /etc/registry/passwd: permission denied