تگ ها - بخش 1
تگ ها#
View:
معادل همان div می باشد که برای مشخص کردن هر بخش از آن استفاده میکنیم و ب صورت پیش فرض flex با دایرکشن column و justifyContent ب صورت flex-start و alignItems هم به صورت stretch می باشد.
✨ هنگامی ک flex: 1 قرار میدهیم برای یک View یی ک والد همه تگ ها می باشد، کل فضای صفحه را ب خود اختصاص می دهد و مانند height: 100vh می باشد
✨ همیشه سعی شود برای المان هایی ک لازم دارند ک تمام فضای در اختیارشان را بگیرند از flex: 1 استفاده شود، زیرا بعضی مواقع ک المان والد از padding و margin استفاده می کند، موارد اضافه فرزند، پوش می شوند زیر المان والد و دیده نمی شوند.
Text:
معادل همان p می باشد که برای قرار دادن متن هایمان از آن استفاده می کنیم.
TouchableOpacity
در واقع توسط این تگ می توان المان هایی ماننده Image و Text را touchable کنیم و از رویداد هایی ماننده onPress برای آن ها استفاده کنیم، ما چندین مورد از این تگ با نام های مختلف داریم ک در واقع بعد از کلمه Touchable هر چیزی بیاید یعنی قرار است بعد از تاچ شدن، انیمیشنی مربوط ب آن پراپرتی اجرا شود ک در اینجا یعنی انیمیشنی مربوط ب opacity هنگام تاچ اجرا می شود، همچنین می توان ب آن ها استایل هم داد.
✨ به صورت مستقیم نمی توان از onPress روی Text و View استفاده کرد.
ScrollView:
اگر یک تگ View اندازه اش بزرگ تر از صفحه باشد، چ افقی و چ عمودی، اسکرول نمی شود و باید بجای آن از این تگ استفاده کنیم.
FlatList:
مانند تگ ScrollView می باشد با این فرق ک ما از این بگ بیشتر برای زمانی ک بخواهیم روی لیستی حلقه بزنیم استفاده میکنیم ک ب ما آپشن های زیر رو میده و خیلی از کار هارو انجام میده ک بر خلاف ScrollView ک باید کل حلقه رو خودمون بنویسیم، این تگ خودش همه چیز رو هندل میکنه و پرفورمنس بهتری هم داره.
SafeAreaView
کامپوننتی می باشد ک فقط برای ios می باشد و تنها فرقی ک با View دارد، این است ک content مارا دقیقا زیر status bar قرار می دهد ک در View اینگونه نیست.
onChangeText:
یک event می باشد ک مانند onChange عمل می کند، با این فرق ک این تگ دقیقا مقدار داخل input را ب ما بر میگرداند اما onChange یک آبجکت با نام event بر میگرداند ک باید از داخل target خودمان value را بیرون بکشیم.
keyboard
یک تابع مخصوص خود react native می باشد ک متد های مختلفی دارد، مثلا توسط متد ()dismiss بعد از تایپ کردن و زدن دکمه submit، کیبورد بسته می شود.
Alert
یکی دیگر از کامپوننت های RN می باشد ک خطا ها را نمایش می دهد ک برای نمایش خطا باید از متد ()alert استفاده کنیم.
TouchableWithoutFeedback
می توان تمام کد های مثلا صفحه ای ک input داریم را درون این کامپوننت قرار دهیم تا هر موقع کیبورد ما باز بود و هرجایی از صفحه ب غیر از کیبورد را لمس کردیم، صفحه بسته شود.
icons
برای اضافه کردن آیکون ب برنامه هایمان می توانیم از خود expo استفاده کنیم، در واقع expo تمام آیکون های مورد نظرمان را از تمامی لایبرری ها جمع کرده و درون خود قرار داده ک آدرس آن در زیر موجود است:
custom font
برای اضافه کردن فونت های سفارشی میتوان
فونت ها فقط از 2 فرمت بیشتر استفاده میکنند: ttf و otf ( در کل دومی بهتر است ! )
برای اضافه کردن فونت ها باید در کامپوننت اصلی ( app ) آن را اضافه کنیم ک روش های مختلفی برای اینکار وجود دارد ک میتوان از لینک بالا آن ها را مشاهده کرد.
در روش اول می توان ب این صورت ابتدا موارد مورد نیاز را اضافه کرد:
باید در نظر داشت ک نمی توان از fontWeight به صورت bold برای فونتی ک بولد ندارد استفاده کنیم.
SectionList
توسط این کامپوننت می توان مانند FlatList روی موارد یک لیست حلقه بزنیم و آن ها را چاپ کنیم، با این فرق ک این کامپوننت، دارای header و footer نیز می باشد ک وقتی آن ها را برای این کامپوننت تعریف کنیم، ب صورت خودکار در پایین و بالای هر بخش قرار میگیرند
Image
توسط این کامپوننت می توان عکس ها را در برنامه هایمان استفاده کنیم، بهتر است عکس ها از یک منبع خارجی باشد، یعنی بهتر است کمتر از فایل های static استفاده کنیم ( prop زیادی دارد و حتما داکیومنت خوانده شود ).
🎉 سعی شود از استایل های کپسوله شده استفاده شود، یعنی مواردی ک می دانیم در خیلی جاها استفاده می شود را در یکجا قرار دهیم و
از آن در همه جا استفاده کنیم، یعنی از قانون DRY استفاده کنیم.