تمام فرمهای تعریف شده، نیاز به اعتبارسنجی اطلاعات وارد شدهی توسط کاربران خود را دارند. ابتدا اعتبارسنجی اطلاعات را در حین ارسال فرم و سپس آنرا همزمان با ورود اطلاعات، بررسی میکنیم. اصول کلی طراحی یک اعتبارسنج ساده
در قسمت قبل ، تمام اطلاعات فرم لاگین را درون شیء account خاصیت state قرار دادیم. در اینجا نیز شبیه به چنین شیءای را برای ذخیره سازی خطاهای اعتبارسنجی فیلدهای فرم، تعریف میکنیم: class LoginForm extends ...
تقریبا تمام برنامهها نیاز دارند فرمهای مخصوصی را داشته باشند. به همین جهت در این قسمت، برنامهی نمایش لیست فیلمها را که تا این مرحله تکمیل کردیم، با افزودن تعدادی فرم بهبود میبخشیم؛ مانند فرم لاگین، فرم ثبت نام، فرمی برای ثبت و ویرایش فیلمها و یک فرم جستجوی سریع در لیست فیلمهای موجود. ایجاد فرم لاگین
فرم لاگینی را که به برنامهی نمایش لیست فیلمهای تکمیل شدهی تا قسمت 17 ، اضافه خواهیم کرد، یک فرم بوت استرپی ...
به عنوان تمرین، همان برنامهی طراحی گریدی را که تا قسمت 14 تکمیل کردیم، با معرفی مسیریابی بهبود خواهیم بخشید. برای این منظور یک NavBar بوت استرپی را به بالای صفحه اضافه میکنیم که دارای سه لینک movies ،customers و rentals است. به همین جهت نیاز به دو کامپوننت مقدماتی customers و rentals نیز وجود دارد که تنها یک h1 را نمایش میدهند. به علاوه منوی راهبری برنامه نیز باید بر اساس مسیر فعال جاری، با رنگ مشخصی، فعال بودن مسیریابی گزینهی انتخا ...
در قسمت قبل ، نحوهی برپایی و تنظیمات اولیهی کتابخانهی مسیریابی react-router-dom را بررسی کردیم. در ادامه نحوهی دریافت پارامترهای مسیریابی و سایر جزئیات این کتابخانه را مرور میکنیم.
دریافت پارامترهای مسیریابی
گاهی از اوقات نیاز به ارسال پارامترهایی به مسیریابیهای تعریف شدهاست. برای مثال در لیست محصولات تعریف شده، بسته به انتخاب هر کدام، باید id متناظری نیز در URL نهایی ظاهر شود. به این Id، یک Route parame ...
React برخلاف Angular، دارای قابلیتهای توکار مسیریابی نیست و تنها کاری را که انجام میدهد همان رندر View است که تا اینجا بررسی کردیم. به همین جهت در این قسمت ابتدا یک برنامهی عمومی و ساده را با نصب کتابخانهی ثالثی برای توضیح مفاهیم مسیریابی، شامل کار با پارامترهای مسیریابی، کوئری استرینگها، هدایت کاربران به صفحات دیگر، مدیریت صفحات یافت نشده و مسیریابی تو در تو، بررسی میکنیم. سپس به عنوان تمرین، همان برنامهی طراحی گریدی را که تا قسمت ...
در گریدی که تا به اینجا طراحی کردیم، اگر قرار باشد بجای جدول فیلمها، جدول مشتریها نمایش داده شود، چکار باید کرد؟ با پیاده سازی فعلی، باید کل تعاریف MoviesTable را در کامپوننت دیگری مانند CustomersTable تکرار کنیم. به همین جهت برای پویاسازی تعاریف ستونها نیاز است این قسمت را از جدول اصلی جدا کرده و به کامپوننت مستقلی مانند tableHeader منتقل کنیم. ایجاد کامپوننت جدید tableHeader
برای پویاسازی تعاریف ستونها و همچنین کم ...
تا اینجا صفحه بندی و فیلتر کردن اطلاعات را پیاده سازی کردیم. در این قسمت شروع به refactoring کامپوننت movies کرده، جدول آنرا تبدیل به یک کامپوننت مجزا میکنیم و سپس مرتب سازی اطلاعات را نیز به آن اضافه خواهیم کرد. استخراج جدول فیلمها
در طراحی فعلی کامپوننت movies، مشکل کوچکی وجود دارد: این کامپوننت تا اینجا، ترکیبی شدهاست از دو کامپوننت صفحه بندی و نمایش لیست گروهها، به همراه جزئیات کامل یک جدول بسیار طولانی. به این ...
در طی چند قسمت قصد داریم مثال قسمت قبل را که کار نمایش لیستی از فیلمها را انجام میدهد، تبدیل به یک کامپوننت گرید کنیم که دارای امکانات صفحه بندی، فیلتر کردن و مرتب سازی اطلاعات است. بررسی ساختار کامپوننت Pagination
شبیه به کامپوننت Like که در قسمت قبل ایجاد کردیم، میخواهیم کامپوننت جدید Pagination نیز به طور کامل از اشیاء movie مستقل باشد؛ تا در آینده بتوان از آن در جاهای دیگری نیز استفاده کرد. به همین جهت فایل جدید s ...
در قسمت 6 ، تمرینی را جهت پیاده سازی نمایش لیست یک سری فیلم، انجام دادیم. در اینجا قصد داریم این تمرین را جهت دریافت امتیاز و Like از کاربر، به ازای هر ردیف نمایش داده شده، تکمیل کنیم.
بررسی ساختار کامپوننت Like
در پوشهی components، ابتدا پوشهی جدید common را ایجاد میکنید. در اینجا تمام کامپوننتهای عمومی برنامه را که منحصر به دومین آن برنامه نیستند، قرار میدهیم. کامپوننتهایی را که اگر آنها را به برنامههای ...
کامپوننتها در طول چرخهی عمر خود، از چندین مرحله عبور میکنند. اولین مرحله، mount نام دارد و زمانی رخ میدهد که وهلهای از یک کامپوننت، ایجاد و به DOM افزوده شدهاست. در این حالت تعدادی متد خاص را میتوان به کامپوننت خود اضافه کرد که به صورت خودکار توسط React فراخوانی میشوند. به این متدها Lifecycle Hooks میگویند. در طی مرحلهی mount، سه متد Lifecycle Hooks مخصوص constructor، render و componentDidMount قابل تعریف هستند. React این متدها ر ...