⚛️ ادغام React.js و Next.js
ویجت ماشینحساب نرخ ارز ریال ایران برای اپلیکیشنهای React
راهنمای شروع سریع
کامپوننت React زیر را کپی کنید و شروع به نمایش نرخهای ارز ریال ایران لحظهای در اپلیکیشن React یا Next.js خود کنید!
// React Component Example
import { useEffect } from 'react';
const PashiziWidget = ({ currency = 'usd', lang = 'en' }) => {
useEffect(() => {
const script = document.createElement('script');
script.src = `https://www.pashizi.com/widget/?lang=${lang}&base=${currency}`;
script.async = true;
document.body.appendChild(script);
return () => {
document.body.removeChild(script);
};
}, [currency, lang]);
return <div data-pashizi-widget data-lang={lang} data-base={currency} />;
};
export default PashiziWidget;🎮 Interactive React Demo
Try different currency and language combinations to see how the React component works with live previews and get the exact code.
Customize & Preview Live
Choose your preferred currency and language to see the widget in action. Copy the integration code for your setup.
Live Widget Demo
📋 Integration Code
import PashiziWidget from './PashiziWidget';
function MyComponent() {
return (
<div>
<PashiziWidget currency="usd" lang="fa" />
</div>
);
}
export default MyComponent;💡 Make sure you have the PashiziWidget component created in your project.
Show PashiziWidget Component Code
"use client";
import { useEffect } from "react";
interface PashiziWidgetProps {
currency?: string;
lang?: string;
className?: string;
}
const PashiziWidget = ({
currency = "usd",
lang = "en",
className = ""
}: PashiziWidgetProps) => {
useEffect(() => {
const script = document.createElement("script");
script.src = `https://widget.pashizi.com/calculator?currency=${currency}&lang=${lang}`;
script.async = true;
script.defer = true;
document.body.appendChild(script);
return () => {
if (document.body.contains(script)) {
document.body.removeChild(script);
}
};
}, [currency, lang]);
return (
<div
data-pashizi-widget
data-lang={lang}
data-base={currency}
className={className}
/>
);
};
export default PashiziWidget;📝 نمونههای استفاده
<PashiziWidget /><PashiziWidget currency="eur" lang="de" /><PashiziWidget lang="fa" currency="usd" /><PashiziWidget currency="eur" lang="fr" />▲ پیکربندی خاص Next.js
📁App Router (Next.js 13+)
دستورالعمل "use client" را در بالای کامپوننت خود برای رندر کردن سمت کلاینت اضافه کنید:
"use client";
import { useEffect } from "react";
const PashiziWidget = ({ currency, lang }) => {
// Component implementation...
};🏗️Pages Router (Next.js 12 و پایینتر)
از dynamic imports استفاده کنید تا اطمینان حاصل کنید کامپوننت فقط روی کلاینت اجرا میشود:
import dynamic from 'next/dynamic';
const PashiziWidget = dynamic(() => import('../components/PashiziWidget'), {
ssr: false
});⚙️ پیکربندی پیشرفته
Props کامپوننت
| Prop | نوع | توضیحات | مثال |
|---|---|---|---|
| currency | string | کد ارز پایه (۳ حرف) | "usd" |
| lang | string | زبان رابط (۲ حرف) | "en" |
| className | string? | کلاسهای CSS اختیاری | "my-widget" |
رابط TypeScript
رابطهای TypeScript مناسب برای ایمنی نوع بهتر تعریف کنید:
interface PashiziWidgetProps {
currency: string;
lang: string;
className?: string;
}
const PashiziWidget: React.FC<PashiziWidgetProps> = ({
currency,
lang,
className
}) => {
// Component implementation...
return (
<div
data-pashizi-widget
data-lang={lang}
data-base={currency}
className={className}
/>
);
};💰 ارزهای پشتیبانی شده (۲۸+)
از این کدهای ارز در prop 'currency' استفاده کنید. همه نرخها در برابر ریال ایران (IRR) نمایش داده میشوند.
💡 نمونه استفاده
<PashiziWidget currency="eur" lang="en" />usdeurgbpjpychfcadaudsgdhkdnoksekdkkmyrrubtryinrcnyaedthbqarsaromrbhdkwdiqdaznafnamd🌍 زبانهای پشتیبانی شده (۱۰)
از این کدهای زبان در prop 'lang' برای نمایش رابط ویجت به زبانهای مختلف استفاده کنید.
💡 نمونه انتخاب زبان
<PashiziWidget currency="usd" lang="fa" />This displays USD rates with Persian (Farsi) interface. Persian and Arabic support right-to-left (RTL) layouts.
enfadearesfritnlruzh✅ بهترین شیوهها
✅انجام دهید
- از useEffect برای بارگذاری اسکریپت و تمیزکاری استفاده کنید
- آرایه وابستگی [currency, lang] را به useEffect اضافه کنید
- از دستورالعمل "use client" برای Next.js App Router استفاده کنید
- رابطهای TypeScript مناسب تعریف کنید
- روی اندازههای مختلف صفحه تست کنید
❌انجام ندهید
- تمیزکاری اسکریپت در بازگشت useEffect را فراموش نکنید
- دو بار از ترکیب یکسان ارز-زبان در یک صفحه استفاده نکنید
- اسکریپتها را مستقیماً در تابع render بارگذاری نکنید
- مقادیر ارز و زبان را hard-code نکنید
- برای بهبود قابلیت نگهداری، از انواع TypeScript صرفنظر نکنید
⚠️ نکات مهم
- فقط یک ویجت با ترکیب خاص زبان و ارز در هر صفحه مجاز است. به عنوان مثال، اگر در صفحه قبلاً ویجتی با currency='usd' و lang='en' وجود داشته باشد، ویجت دوم با همان ترکیب کار نخواهد کرد.
- برای نمایش چندین ویجت، از props مختلف currency یا lang برای هر ویجت استفاده کنید.
- پارامترهای URL اسکریپت بهطور خودکار براساس props که به کامپوننت ارسال میکنید تولید میشوند.
- برای Next.js 13+ App Router، همیشه دستورالعمل "use client" را برای فعال کردن رندر سمت کلاینت اضافه کنید.
- ویجت بهطور خودکار با استایل وبسایت شما تطبیق مییابد و کاملاً پاسخگو است.