پنل مدیریت اختصاصی
DEVNU / TECHNOLOGY / REACT
React وقتی انتخاب خوبی است که رابط واقعاً رفتار داشته باشد.
برای پنلهای مدیریتی، ابزارهای داخلی، فرمهای چندمرحلهای و رابطهایی که state و تعامل بخش اصلی محصول است، React یک لایه رابط قابل ترکیب و قابل آزمون میدهد. آن را صرفاً برای داشتن یک SPA به پروژه اضافه نمیکنیم.
React در پروژه چه مسئولیتی دارد؟
در معماریهای DEVNU، React معمولاً مسئول state رابط، component composition، فرمها، جدولها، تعامل بلادرنگ و اتصال تجربه کاربر به API است. منطق دامنه و داده دائمی در جای دیگری میمانند تا UI به مرکز همه مسئولیتها تبدیل نشود.
جایی که استفاده از آن باید یک مسئله مشخص را حل کند.
داشبورد و ابزار عملیاتی
فرمهای چندمرحلهای و workflow
جستوجو و فیلتر تعاملی
رابط بلادرنگ و وضعیتهای زنده
کامپوننتهای دوزبانه RTL/LTR
چه زمانی انتخابش میکنیم
وقتی محصول چندین حالت رابط، داده زنده، نقش کاربری، فرم پیچیده یا تعامل پرتکرار دارد، React هزینه ذهنی خود را توجیه میکند. برای پنلهای عملیاتی و محصولاتی که رشد تدریجی دارند، component boundaries و TypeScript کمک میکنند تغییرات بدون بازنویسی کامل انجام شوند.
چه زمانی انتخابش نمیکنیم
برای یک سایت محتوایی کوچک، لندینگ ثابت یا صفحهای که تقریباً هیچ state تعاملی ندارد، React client-side میتواند JavaScript، hydration و نگهداری اضافه ایجاد کند. در چنین مواردی rendering سمت سرور، HTML سادهتر یا CMS مناسب ممکن است انتخاب بهتری باشد.
استفاده از ابزار مهم نیست؛ نحوه نگهداری آن مهم است.
- 01مرز روشن بین state سرور و state رابط
- 02کامپوننتهای کوچک بر اساس مسئولیت، نه صرفاً ظاهر
- 03TypeScript برای قرارداد props و API
- 04lazy loading و کاهش JavaScript غیرضروری
- 05حالتهای loading، empty، error و permission بهعنوان بخشی از طراحی
- 06دسترسیپذیری keyboard و focus در interactionها
چند سؤال مهمتر از اسم stack هستند.
React یا Next.js؟
React کتابخانه رابط است؛ Next.js چارچوبی است که routing، server rendering، metadata و مسیر انتشار را هم وارد تصمیم میکند. برای سایت عمومی قابل ایندکس معمولاً Next.js را ارزیابی میکنیم، برای interfaceهای app-like ممکن است React مستقیم کافی باشد.
State کجا زندگی میکند؟
هر state نباید global باشد. داده API، state فرم و state موقت UI عمر متفاوت دارند و جدا نگهداشتن آنها پیچیدگی و re-render را کم میکند.
کامپوننت قابل استفاده مجدد یا abstraction زودهنگام؟
ابتدا الگوی واقعی تکرار را پیدا میکنیم. component عمومی که قبل از مشاهده چند use case ساخته شود معمولاً API داخلی پیچیدهتری از خود مسئله ایجاد میکند.
پروژههایی که React در stack آنها ثبت شده است.
وبسایت و سامانه مدیریتی SUMY
وبسایت دوزبانه گروه صنعتی SUMY بههمراه API، پایگاهداده و پنل اختصاصی برای مدیریت صفحات، محصولات، برندها و درخواستهای ورودی.
- React
- TypeScript
- NestJS
- PostgreSQL
- Prisma
- Docker
پاسارگارد؛ فروشگاه و پنل عملیاتی تلگرام
محصول شخصی برای جمعکردن ثبت سفارش، کیف پول، تحویل سرویس و مدیریت نمایندگان در یک جریان واحد داخل ربات و Mini App تلگرام.
- Telegram
- React
- TypeScript
- FastAPI
- PostgreSQL
- Redis
- Docker
- Nginx
DEVNU Science؛ فضای کار پژوهش علمی
یک فضای کار پژوهشی متصل برای حرکت از ژن، پروتئین، واریانت، بیماری یا توالی به شواهد، ساختار سهبعدی، تحلیل و workflow بدون پرش بیهدف بین دیتابیسها.
- Next.js
- React
- TypeScript
- PostgreSQL
- Drizzle
- Better Auth
- GSAP
- Nginx
فناوری درون یک خروجی واقعی معنا پیدا میکند.
پرسشهای متداول درباره React
01آیا DEVNU همه سایتها را با React میسازد؟+
خیر. انتخاب به نوع محتوا، سطح تعامل، SEO، workflow تیم و هزینه نگهداری بستگی دارد. WordPress یا rendering سادهتر گاهی انتخاب درستتری است.
02React برای SEO مناسب است؟+
بله، اما روش rendering و معماری مهم است. برای صفحات عمومی معمولاً از چارچوبی مثل Next.js استفاده میکنیم تا HTML و metadata مناسب از ابتدا در دسترس باشند.
09 / NEXT STEP
اول مسئله را ببینیم، بعد stack را انتخاب کنیم.
اگر پروژه به این فناوری نیاز داشته باشد، دلیلش باید در معماری، عملکرد، تجربه کاربر یا هزینه نگهداری قابل توضیح باشد.
شرح پروژه