react实现缩略图
时间: 2023-12-06 14:03:21 浏览: 45
为了实现缩略图,我们可以使用React组件和useEffect()钩子来初始化缩略图的图片资源、标题、副标题和文本数据。同时,我们需要将静态资源保存在public文件夹下,并将下载的图片拷贝到public目录下。
以下是一个简单的React组件示例,用于实现缩略图:
```jsx
import React, { useState, useEffect } from 'react';
function Thumbnail(props) {
const [img, setImg] = useState('');
const [title, setTitle] = useState(''); const [subtitle, setSubtitle] = useState('');
const [text, setText] = useState('');
useEffect(() => {
setImg(props.img);
setTitle(props.title);
setSubtitle(props.subtitle);
setText(props.text); }, [props.img, props.title, props.subtitle, props.text]);
return (
<div className="thumbnail">
<img src={img} alt={title} />
<h3>{title}</h3>
<h4>{subtitle}</h4>
<p>{text}</p>
</div>
);
}
export default Thumbnail;
```
在上面的代码中,我们使用useState()钩子来定义img、title、subtitle和text状态变量,并使用useEffect()钩子来初始化这些状态变量。当传递给组件的props发生变化时,useEffect()钩子会重新运行,从而更新状态变量。
我们可以将上面的组件用作其他组件的子组件,以便在页面上显示多个缩略图。例如:
```jsx
import React from 'react';
import Thumbnail from './Thumbnail';
function ThumbnailList(props) {
const thumbnails = props.thumbnails.map((thumbnail) => (
<Thumbnail
key={thumbnail.id}
img={thumbnail.img}
title={thumbnail.title}
subtitle={thumbnail.subtitle}
text={thumbnail.text}
/>
));
return <div className="thumbnail-list">{thumbnails}</div>;
}
export default ThumbnailList;
```
在上面的代码中,我们使用map()函数将传递给组件的缩略图数组转换为Thumbnail组件数组,并将它们渲染到页面上。