MobX از 4 مفهوم اصلی تشکیل میشود:
- Observable state: در MobX نیز همانند Redux، کل شیء state به صورت یک شیء جاوا اسکریپتی ارائه میشود؛ با این تفاوت که در اینجا این شیء، یک Observable است که نمونهای از مفهوم آنرا در مثال قسمت قبل بررسی کردیم.
- Actions: متدهایی هستند که state را تغییر میدهند.
- Computed properties: در مورد مفهوم خواص محاسباتی در قسمت قبل بحث کردیم. این خواص، ...
پیش از بحث در مورد «مدیریت حالت»، باید با مفهوم «حالت» آشنا شد. «حالت» در اینجا همان لایهی دادههای برنامه است. زمانیکه بحث React و کتابخانههای مدیریت حالت آن مطرح میشود، میتوان گفت حالت، شیءای است حاوی اطلاعاتی که برنامه با آن سر و کار دارد. برای مثال اگر برنامهای قرار است لیستی از موارد را نمایش دهد، حالت برنامه، حاوی اشیاء متناظری خواهد بود. حالت، بر روی نحوهی رفتار و رندر کامپوننتهای React تاثیر میگذارد. بنابراین مدیریت حالت، ر ...
تا اینجا الگوی Redux را در برنامههای React بررسی کردیم که شامل این موارد است:
- با استفاده از Redux، یک شیء سراسری state، کار مدیریت state تمام برنامه را به عهده میگیرد که به آن «single source of truth» نیز گفته میشود. البته هرچند میتوان کامپوننتهایی را هم در این بین داشت که state خاص خودشان را داشته باشند و آنرا در این شیء سراسری ذخیره نکنند.
- در حین کار با Redux، تنها راه تغییر شیء سراسری state آن، صدور رخ ...
در قسمت اول این سری، با مفاهیم توابع خالص و ناخالص آشنا شدیم و همچنین عنوان شد که هرگونه تعامل با یک 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 ایجاد کردیم، استفاده خواهیم کرد. فقط در آن، کتابخانه ...