نحوه پیاده سازی Image Drag-and-Drop در React

نحوه پیاده سازی Drag-and-Drop تصویر در React فقط با استفاده از CSS
React به طور گسترده ای برای ساخت UI های تعاملی شناخته شده است. در این آموزش، ما شما را از طریق ایجاد یک ویژگی کشیدن و رها کردن برای تصاویر در React تنها با CSS راهنمایی می کنیم.
مرحله 1: پروژه React خود را راه اندازی کنید
با راه اندازی پروژه React خود شروع کنید. می توانید استفاده کنید create-react-app
برای راه اندازی آسان
npx create-react-app drag-and-drop
مرحله 2: به روز رسانی App.js
و App.css
بعد، را اصلاح کنید App.js
فایل برای ایجاد یک ظرف برای تصویر و عنوان.
import './App.css';
function App() {
return (
<div className="App">
<h2 className="heading">Select Image:</h2>
<div className="image-area"></div>
</div>
);
}
export default App;
در App.css
، به صفحه استایل دهید:
.App {
text-align: center;
width: 100vw;
height: 100vh;
}
.heading {
font-size: 32px;
font-weight: 500;
}
مرحله 3: ایجاد کنید ImageContainer
جزء
یک فایل جدید ایجاد کنید ImageContainer.js
و یک ظرف اصلی کشیدن و رها کردن را تعریف کنید.
import React from 'react';
const ImageContainer = () => {
return (
<div className="image-container"></div>
);
};
export default ImageContainer;
این ظرف را در آن استایل کنید ImageContainer.css
:
.image-container {
width: 60%;
height: 90%;
display: flex;
align-items: center;
justify-content: center;
border: 2px dashed rgba(0, 0, 0, .3);
}
مرحله 4: قابلیت آپلود تصویر را اضافه کنید
را تقویت کنید ImageContainer
با ورودی فایل و دستورالعمل های متنی برای کاربر.
import React from 'react';
import './ImageContainer.css';
const ImageContainer = () => {
const [url, setUrl] = React.useState('');
const onChange = (e) => {
const files = e.target.files;
if (files.length > 0) {
setUrl(URL.createObjectURL(files[0]));
}
};
return (
<div className="image-container">
<div className="upload-container">
<input
type="file"
className="input-file"
accept=".png, .jpg, .jpeg"
onChange={onChange}
/>
<p>Drag & Drop here</p>
<p>or</p>
<p>Click</p>
</div>
</div>
);
};
export default ImageContainer;
و استایل کنید upload-container
:
.image-container {
width: 60%;
height: 90%;
display: flex;
align-items: center;
justify-content: center;
border: 2px dashed rgba(0, 0, 0, .3);
}
.upload-container {
position: relative;
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background-color: white;
}
.upload-container > p {
font-size: 18px;
margin: 4px;
font-weight: 500;
}
.input-file {
display: block;
border: none;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
opacity: 0;
}
مرحله 5: پیش نمایش تصویر
مؤلفه را تغییر دهید تا به صورت مشروط تصویر آپلود شده یا ناحیه کشیدن و رها کردن را ارائه دهد.
import React from 'react';
import './ImageContainer.css';
const ImageContainer = () => {
const [url, setUrl] = React.useState('');
const onChange = (e) => {
const files = e.target.files;
if (files.length > 0) {
setUrl(URL.createObjectURL(files[0]));
}
};
return (
<div className="image-container">
{url ? (
<img className="image-view" style={{ width: '100%', height: '100%' }} src={url} alt="" />
) : (
<div className="upload-container">
<input
type="file"
className="input-file"
accept=".png, .jpg, .jpeg"
onChange={onChange}
/>
<p>Drag & Drop here</p>
<p>or <span style={{ color: "blue" }}>Browse</span>p>
</div>
)}
</div>
);
};
export default ImageContainer;
مرحله 6: برنامه را وارد کرده و اجرا کنید
در نهایت واردات ImageContainer
به App.js
و برنامه را اجرا کنید
import './App.css';
import ImageContainer from './ImageContainer';
function App() {
return (
<div className="App">
<h2 className="heading">Select Image:</h2>
<div className="image-area">
<ImageContainer />
</div>
</div>
);
}
export default App;
اکنون می توانید برنامه را اجرا کنید و از کدنویسی ویژگی کشیدن و رها کردن تصویر خود با React و CSS لذت ببرید.
این آموزش نحوه راهاندازی یک ناحیه کشیدن و رها کردن برای تصاویر با React، استفاده از ورودی فایل و CSS برای استایلسازی و مدیریت پیشنمایش تصویر را پوشش میدهد.