الگو‌های ری اکت - ۲

تو این مقاله میخوام در مورد بهترین روش های استفاده از امکانات و قدرت ری اکت صحبت کنم. استفاده از الگوهای ری اکت باعث میشه کدهایی بنویسیم که به لحاظ کارایی و خوانایی سطح بالاتری داشته باشند.

تو این مقاله قصد دارم الگوهای ری اکت رو با بیان ساده شرح بدم . این مقاله برداشت آزادی از سایت الگوهای ری اکت است.

تو نوشته قبلی درباره یک سری از الگوی‌های ساده برنامه نویسی در ری اکت صحبت کردم. بریم ادامه الگوهای بهینه کد زدن ری اکت رو بررسی کنیم.

قسمت اول این نوشته:

https://virgool.io/@novonimo/الگوهای-ری-اکت-قسمت-۱-hk9v5jbfalqa


سرفصل های این قسمت:

Children types , Array as children , Function as children , Render prop, Children pass-through

الگوهای ری اکت
الگوهای ری اکت


استفاده از Children types

ری اکت پراپس ویژه ای به اسم children داره. این پراپس میتونه انواع نوع داده رو رندر کنه.

اینجا نوع رشته رو داره رندر میکنه:

نوع  رشته
نوع رشته

و در اینجا از نوع لیست استفاده کردیم:

نوع لیست
نوع لیست

Array as children

استفاده از لیست به عنوان children کار متداولی هست. معمولا هم از تابع map برای این کار استفاده می‌کنیم:

استفاده از لیست برای رندر کردن آیتم ها
استفاده از لیست برای رندر کردن آیتم ها

با استفاده از کد بالا در واقع همچین چیزی رو تولید کردیم:

استفاده از لیست برای رندر کردن آبتم ها
استفاده از لیست برای رندر کردن آبتم ها




استفاده از Function as children

متاسفانه کامپوننت های ری اکت از توابع به عنوان children پیشتیبانی نمی‌کنند. اما با استفاده از render prop می‌تونیم کامپوننت هایی رو بنویسیم که از تابع به عنوان children استفاده می‌کنند.

استفاده از Render prop

برای مثال فرض کنید یک تابع به اسم Width داریم:

تابع width
تابع width

این تابع یک children به عنوان تابع رو ورودی میگیره و اون رو مثل کالبک صدا میزنه ( البته با آرگومان ۵۰۰)

حالا اینجا میخواهیم ازش استفاده کنیم:

استفاده از تابع width
استفاده از تابع width

که این خروجی رو داره:

خروجی تابع width
خروجی تابع width

با این ویژگی میتونیم رندر شرطی هم بنویسیم:

رندر شرطی به عنوان children
رندر شرطی به عنوان children



همچنین مطالعه کنید:

http://vrgl.ir/cpSJu


استفاده از Children pass-through

بعضی وقتا لازم داریم که context  رو از طریق یک کامپوننت عبور بدیم. یا به بیان ساده تر ، کامپوننتی که فقط children میگیره و کارش رندر کردن اون children هست. به کامپوننت زیر توجه کنید:

کامپننت عبور دهنده context
کامپننت عبور دهنده context

خوب اولین چیزی که به ذهنمون میرسه استفاده از یک div هست و یا حتی از <> </> که به fragment مشهور هست. و یا اینکه خود children رو بدون قرار دادن div اضافی return کنیم:

راه های رندر کردن children
راه های رندر کردن children

خوب پس راه درستش چیه ؟‌ ری اکت برای اینکار روش مخصوصی داره. استفاده از only به این شکل:

راه درست رندر کردن children توسط یک کامپوننت context
راه درست رندر کردن children توسط یک کامپوننت context



سایر مقاله های من در ویرگول:

https://virgool.io/@novonimo/معرفی-۱%DB%B0-فریمورک-برتر-nodejs-در-سال-۲%DB%B0۱۹-du9adlrxeyvx
https://virgool.io/iran-react-community/ری-اکت-رو-قورت-بده-۱-u8t5ysweyxyj
https://virgool.io/@novonimo/آموزش-مقدماتی-دارت-dart-قسمت-۱-vrd1jjuoble1

Follow me on social media
Telegram
Facebook
Twitter
Linkedin
Virgool