هر برنامهی وب، دارای یک frontend و یک backend است. تا اینجا، تمام تمرکز این سری، بر روی پیاده سازی frontend بود و هیچکدام از برنامههایی را که تکمیل کردیم، تبادل اطلاعاتی را با وب سرویسهای backend نداشتند؛ اما به عنوان یک توسعه دهندهی React، نیاز است با نحوهی ارتباط با سرور آشنایی داشت که در طی چند قسمت به آن میپردازیم.
ایجاد برنامهی backend ارائه دهندهی REST API
در اینجا یک برنامهی سادهی ASP.NET Core Web ...
پس از فراگیری اصول کار کردن با فرمها در React، اکنون میخواهیم چند فرم جدید را برای تمرین بیشتر، به برنامهی نمایش لیست فیلمها اضافه کنیم؛ مانند فرم ثبت نام، فرمی برای ثبت و یا ویرایش فیلمها و یک فرم جستجوی سریع در لیست فیلمهای موجود.
تمرین 1 - ایجاد فرم ثبت نام
میخواهیم به برنامه، فرم ثبت نام را که حاوی سه فیلد نام کاربری، کلمهی عبور و نام است، اضافه کنیم. نام کاربری باید از نوع ایمیل باشد. بنابراین اع ...
تا اینجا اگر به کدهای کامپوننت فرم لاگینی که ایجاد کردیم دقت کنید، تبدیل شدهاست به محلی برای انباشت حجم قابل توجهی از کد. به این ترتیب اگر قرار باشد فرمهای جدیدی را تعریف کنیم، نیاز خواهد بود قسمتهای عمدهای از این کدها را در هر جایی تکرار کنیم. بنابراین جهت کاهش مسئولیتهای آن، نیاز است بازسازی کد (refactoring) قابل ملاحظهای بر روی آن صورت گیرد. تشخیص قسمتهایی که قابلیت استخراج از کامپوننت لاگین را دارند
قصد داریم ...
تمام فرمهای تعریف شده، نیاز به اعتبارسنجی اطلاعات وارد شدهی توسط کاربران خود را دارند. ابتدا اعتبارسنجی اطلاعات را در حین ارسال فرم و سپس آنرا همزمان با ورود اطلاعات، بررسی میکنیم. اصول کلی طراحی یک اعتبارسنج ساده
در قسمت قبل ، تمام اطلاعات فرم لاگین را درون شیء 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، مشکل کوچکی وجود دارد: این کامپوننت تا اینجا، ترکیبی شدهاست از دو کامپوننت صفحه بندی و نمایش لیست گروهها، به همراه جزئیات کامل یک جدول بسیار طولانی. به این ...