برنامه‌نویسی

برنامه‌نویسی

دنیای زبان‌های کدنویسی و توسعه نرم‌افزار

زبان‌های برنامه‌نویسیتوسعه نرم‌افزارالگوریتم‌ها و داده‌ساختارهامهندسی نرم‌افزاربرنامه‌نویسی وب و موبایل

Articles in this Section

هندلرهای درون‌خطی در JSX – حذف آیتم‌ها با رویکردی ساده و قابل خواندن

در React، هندلرهای درون‌خطی راهی ساده و مؤثر برای اجرای توابع در JSX هستند. این مقاله نحوهٔ استفاده از هندلرهای درون‌خطی برای حذف آیتم‌ها از لیست را بررسی می‌کند. با استفاده از useState، callback handler و تابع فیلتر، لیست را به‌صورت پویا مدیریت می‌کنیم و با استفاده از arrow function یا bind، هندلر حذف را مستقیماً در JSX تعریف می‌کنیم.

/article/Inline Handlers in JSX – Removing Items with Concise and Readable Logic-fa

داده‌های غیرهمزمان در React – شبیه‌سازی دریافت داده از API با useEffect و Promise

در React، داده‌ها معمولاً از منابع خارجی به‌صورت غیرهمزمان دریافت می‌شوند. این مقاله نحوهٔ شبیه‌سازی دریافت داده از API با استفاده از Promise و useEffect را بررسی می‌کند. ابتدا داده‌های نمونه را به‌صورت غیرهمزمان بارگذاری می‌کنیم، سپس با تأخیر ۲ ثانیه‌ای، رفتار واقعی‌تری از دریافت داده را پیاده‌سازی می‌کنیم. این گام نخست برای اتصال به API واقعی در آینده است.

/article/react-async-data-simulate-api-with-useeffect-fa

رندر شرطی در React – نمایش وضعیت بارگذاری و خطا هنگام دریافت داده‌های غیرهمزمان

در React، رندر شرطی ابزاری قدرتمند برای کنترل نمایش رابط کاربری بر اساس وضعیت‌های مختلف است. این مقاله نحوهٔ نمایش پیام «در حال بارگذاری…» هنگام دریافت داده‌های غیرهمزمان، و پیام خطا در صورت شکست دریافت داده را بررسی می‌کند. با استفاده از useState و useEffect، وضعیت‌های isLoading و isError را مدیریت کرده و با استفاده از عملگرهای منطقی و ternary، رندر شرطی را پیاده‌سازی می‌کنیم.

/article/react-conditional-rendering-loading-error-states-fa

مدیریت پیشرفته وضعیت در React – استفاده از useReducer برای انتقال‌های پیچیده

در حالی که useState برای مدیریت وضعیت‌های ساده مناسب است، هوک useReducer در React راه‌حلی مقیاس‌پذیر برای مدیریت وضعیت‌های پیچیده و وابسته ارائه می‌دهد. این مقاله نحوهٔ مهاجرت وضعیت لیست داستان‌ها از useState به useReducer را بررسی می‌کند، و نشان می‌دهد چگونه با تعریف اکشن‌هایی مانند SET_STORIES و REMOVE_STORY می‌توان منطق وضعیت را به‌صورت متمرکز و خوانا مدیریت کرد.

/article/react-advanced-state-management-with-usereducer-fa

وضعیت‌های غیرممکن در React – مدیریت پیش‌بینی‌پذیر وضعیت با useReducer

استفاده هم‌زمان از چند useState برای مدیریت وضعیت‌های مرتبط می‌تواند منجر به وضعیت‌های غیرممکن و باگ‌های پنهان شود. این مقاله نشان می‌دهد چگونه با ترکیب وضعیت‌های مرتبط در یک useReducer واحد، می‌توان از بروز چنین مشکلاتی جلوگیری کرد. با تعریف یک ساختار وضعیت پیچیده شامل داده، بارگذاری و خطا، و استفاده از اکشن‌های مشخص، مدیریت وضعیت در React پیش‌بینی‌پذیرتر و قابل اطمینان‌تر می‌شود.

/article/react-impossible-states-predictable-management-with-usereducer-fa

دریافت صریح داده‌ها در React – کنترل درخواست‌های API با دکمه تأیید

در پیاده‌سازی اولیه، هر بار که کاربر در فیلد جستجو تایپ می‌کرد، درخواست جدیدی به API ارسال می‌شد. این مقاله نحوهٔ تغییر این رفتار به دریافت صریح داده‌ها را آموزش می‌دهد؛ به‌طوری‌که فقط با کلیک روی دکمهٔ تأیید، درخواست به API ارسال شود. با تعریف دو وضعیت مجزا برای searchTerm و url، و استفاده از useCallback و useEffect، کنترل کامل بر زمان ارسال درخواست فراهم می‌شود.

/article/react-explicit-data-fetching-with-confirm-button-fa

کتابخانه‌های شخص ثالث در React – استفاده از axios و async/await برای دریافت داده‌ها

در این مقاله، نحوهٔ جایگزینی fetch با کتابخانهٔ axios برای دریافت داده‌ها از API در React را بررسی می‌کنیم. سپس با استفاده از async/await و بلوک try/catch، کد دریافت داده‌ها را خواناتر و قابل مدیریت‌تر می‌کنیم. این روش‌ها باعث افزایش سازگاری با مرورگرهای قدیمی، بهبود تست‌پذیری، و کاهش پیچیدگی کد می‌شوند.

/article/react-third-party-libraries-axios-async-await-fa

فرم‌ها در React – ارسال داده با onSubmit و action در فرم‌های جستجو

فرم‌ها بخش جدایی‌ناپذیر هر اپلیکیشن مدرن هستند. در این مقاله، نحوهٔ ساخت فرم جستجو در React را بررسی می‌کنیم. ابتدا از onSubmit برای مدیریت ارسال فرم استفاده می‌کنیم و سپس با معرفی ویژگی action، فرم را به رفتار بومی HTML نزدیک‌تر می‌کنیم. این ساختار باعث افزایش خوانایی، قابلیت استفاده با صفحه‌کلید، و آمادگی برای نسخه‌های آیندهٔ React می‌شود.

/article/react-forms-submit-search-with-onsubmit-and-action-fa

نصب و راه‌اندازی پروژه Next.js – شروع سریع با TypeScript، Tailwind و App Router

در این مقاله، نحوهٔ نصب و راه‌اندازی یک پروژه جدید با Next.js را بررسی می‌کنیم. با استفاده از دستور create-next-app، می‌توان پروژه‌ای با تنظیمات پیش‌فرض شامل TypeScript، Tailwind CSS، App Router و Turbopack ایجاد کرد. همچنین به ساختار پوشه‌ها، تنظیمات TypeScript، ESLint، و استفاده از import alias برای مسیرهای مطلق می‌پردازیم.

/article/nextjs-installation-quick-start-typescript-tailwind-router-fa

ساختار پروژه در Next.js – مسیرها، لایه‌ها و سازمان‌دهی فایل‌ها

این مقاله مروری کامل بر ساختار پوشه‌ها و فایل‌ها در پروژه‌های Next.js ارائه می‌دهد. با بررسی مسیرهای پویا، لایه‌های مشترک، گروه‌بندی مسیرها، فایل‌های متادیتا و بهترین روش‌های سازمان‌دهی، می‌توان اپلیکیشن‌هایی مقیاس‌پذیر و قابل نگهداری ساخت. آشنایی با این ساختارها باعث وضوح بیشتر در توسعه و همکاری تیمی می‌شود.

/article/nextjs-project-structure-routing-layouts-file-conventions-fa

سازمان‌دهی مسیرها و فایل‌ها در Next.js – پوشه‌های خصوصی، گروه‌های مسیر و ساختار پروژه

Next.js امکانات متنوعی برای سازمان‌دهی فایل‌ها و مسیرها ارائه می‌دهد. در این مقاله، با مفهوم پوشه‌های خصوصی برای جداسازی منطق داخلی، گروه‌های مسیر برای سازمان‌دهی بدون تأثیر در URL، و استراتژی‌های مختلف ساختار پروژه آشنا می‌شویم. این تکنیک‌ها باعث افزایش خوانایی، مقیاس‌پذیری و انعطاف‌پذیری در توسعه اپلیکیشن می‌شوند.

/article/nextjs-routing-private-folders-and-project-structure-fa

صفحات و لایه‌ها در Next.js – ساخت مسیرهای پویا، لایه‌های تو در تو و لینک‌دهی بین صفحات

Next.js از سیستم مسیریابی مبتنی بر فایل استفاده می‌کند. در این مقاله، نحوهٔ ساخت صفحات، لایه‌های ریشه و تو در تو، مسیرهای پویا، دریافت پارامترهای جستجو، و لینک‌دهی بین صفحات را بررسی می‌کنیم. همچنین با انواع props کمکی مانند PageProps و LayoutProps آشنا می‌شویم که به مدیریت بهتر داده‌ها در مسیرها کمک می‌کنند.

/article/nextjs-layouts-pages-dynamic-routing-and-linking-fa
برنامه‌نویسی | Dr. Shahin Siami