در قسمت اول این سری، با مفاهیم توابع خالص و ناخالص آشنا شدیم و همچنین عنوان شد که هرگونه تعامل با یک API خارجی به عنوان یک اثر جانبی و یا side effect در نظر گرفته شده و توابع را ناخالص میکند. به علاوه Redux تنها امکان کار با توابع خالص قابل پیش بینی را دارد و همچنین dispatch تمام اکشنها توسط آن، به صورت پیشفرض synchronous است و نه asynchronous. اما در برنامههای واقعی نیاز است بتوان با یک API خارجی کارکرد و اطلاعاتی را از آن دریافت ن ...
پس از بررسی ساختار کتابخانهی Redux به صورت مستقل و متکی به خود، اکنون در این قسمت، نحوهی اتصال آنرا به برنامههای React بررسی میکنیم. نصب پیشنیازها
میتوان همانند قسمت قبل ، تمام کارها را با کتابخانهی redux انجام داد و یا میتوان قسمت به روز رسانی UI آنرا و همچنین مدیریت state را به کتابخانهی ساده کنندهی دیگری به نام react-redux واگذار کرد. به همین جهت در ادامهی همان برنامهی قسمت قبل ، دو کتابخانهی red ...
همانطور که در مقدمهی قسمت قبل نیز عنوان شد، در این سری ابتدا کتابخانهی Redux را به صورت مجزایی از React بررسی میکنیم؛ چون در اصل، یک کتابخانهی مدیریت حالت عمومی است و وابستگی خاصی را به React ندارد و در بسیاری از برنامه و فریمورکهای دیگر نیز قابل استفادهاست. ایجاد یک برنامهی خالی React برای آزمایش توابع Redux
در اینجا برای بررسی توابع Redux، یک پروژهی جدید React را ایجاد میکنیم: > npm i -g creat ...
Redux و Mobx ، کتابخانههای کمکی هستند برای مدیریت حالت برنامههای پیچیدهی React. هرچند React به صورت توکار به همراه امکانات مدیریت حالت است، اما این کتابخانهها مزایای ویژهای را به آن اضافه میکنند. در این سری ابتدا کتابخانهی Redux را به صورت خالص و مجزای از React بررسی میکنیم. از این کتابخانه در برنامههای Angular و Ember هم میتوان استفاده کرد و به صورت اختصاصی برای React طراحی نشدهاست. سپس آنرا به برنامههای React متصل میکنی ...
در قسمت آخر این سری ، نگاهی خواهیم داشت به نحوهی توزیع برنامههای React و نکات مرتبط با آن.
افزودن متغیرهای محیطی
در برنامهی نمایش لیست فیلمهایی که تا قسمت 29 آنرا بررسی کردیم، از فایل src\config.json برای ذخیره سازی اطلاعات تنظیمات برنامه استفاده شد. هرچند این روش کار میکند اما بر اساس محیطهای مختلف توسعه، متغیر نیست. اغلب برنامهها باید بتوانند حداقل در سه محیط توسعه، آزمایش و تولید، بر اساس متغیرها و ت ...
در سری بررسی اعتبارسنجی و احراز هویت کاربران در React ، برای انتقال دادههای کاربر وارد شدهی به سیستم، از روش انتقال props، از بالاترین کامپوننت موجود در component tree، به پایینترین کامپوننت آن، به این نحو فرضی استفاده کردیم:
ابتدا شیء user، در بالاترین سطح، دریافت شده و به صفحهای خاص از طریق ویژگیهای props ارسال میشود: <Page user={user} />
سپس این کامپوننت Page، کامپوننت PageLayout را رندر میکند که آن نیز ...
در قسمتهای 22 تا 25 این سری، روش برقراری ارتباط با سرور را در برنامههای React، توسط کتابخانهی معروف Axios، بررسی کردیم. در این قسمت میخواهیم همان نکات را زمانیکه قرار است از کامپوننتهای تابعی، به همراه useState hook و useEffect hook استفاده کنیم، مرور نمائیم.
برپایی پیشنیازها
در اینجا نیز از همان برنامهای که در قسمت 30 ، برای بررسی مثالهای React hooks ایجاد کردیم، استفاده خواهیم کرد. فقط در آن، کتابخانه ...
در قسمت قبل ، با useState Hook آشنا شدیم. همچنین چندین مثال را در مورد نحوهی تعریف تکی و یا چندتایی آن در یک کامپوننت تابعی، با انواع و اقسام دادههای مختلف، بررسی کردیم؛ اما بهتر است از کدام حالت استفاده شود؟ آیا بهتر است به ازای هر خاصیت state، یکبار useState Hook جدیدی را تعریف کنیم و یا بهتر است همانند کامپوننتهای کلاسی، یک شیء کامل را به همراه چندین خاصیت، به یک تک useState Hook معرفی کنیم؟ پیاده سازی یک فرم لاگین با استفاده ...
با استفاده از React Hooks که در نگارش 16.7.0 آن معرفی شدند، میتوان در کامپوننتهای تابعی «تا پیش از این» بدون حالت، به state و تمام قابلیتهای دیگر React، دسترسی یافت. جهت یادآوری، در قسمت 8 این سری، کامپوننتهای تابعی بدون حالت را معرفی کردیم. تا پیش از معرفی React Hooks، برای ردیابی تغییرات مقادیری خاص، میبایستی آنها را در خاصیت state کامپوننتهایی که به صورت کلاس تعریف شده بودند، قرار میدادیم. بنابراین class components، تنها نوع ...
Blazor، چارچوبی است ارائه شده توسط مایکروسافت که به ما اجازه میدهد برنامههای تعاملی وب را با CSharp و بدون JavaScript بنویسیم. Blazor از اساس، Component based بوده و در برنامههایی که Backend نیز با CSharp نوشته شده باشد ( مثلا با ASP.NET Core) امکان به اشتراک گذاری کد بین کلاینت و سرور را نیز فراهم میکند. معماری Blazor معماریای مدرن است که در دل خود از امکانات CSharp نیز به خوبی بهره برده است تا بتوان پروژه را بهصورتی که قابلیت نگه ...