معایب ری اکت چی هستن ؟! ری اکت یک کتابخانه جاوااسکریپتی قدرتمند و بشدت محبوبه! تو این مقاله میخوایم به معایب React بپردازیم و ببینیم بزرگترین مشکلات و معایب ریکت چی هستن🙂
اگه به عنوان یک ری اکت دولوپر با معایب کتابخانه ری اکت آشنا باشیم و بدونیم چجوری باید باهاشون دست و پنجه نرم کنیم، کمتر دچار مشکلات رایج React میشیم ...
پس اگه توسعه دهنده ری اکت هستید یا قصد شروع یادگیری ری اکت رو دارید، با فِرانت اِندی همراه باشید …
مثل هر کتابخانه یا فریمورک، React هم ایرادات و مشکلاتی داره !بریم ببینیم معایب React چی هستن و در نهایت به این پرسش پاسخ بدیم که با وجود معایب ریکت ، این کتابخانه ارزش یادگیری داره ؟!
یکی از بزرگترین معایب ری اکت، سرعت بسیار بالای توسعه ی اون هست. صادقانه بخوایم بگیم، تغییر و تحولات کتابخانه React بشدت زیاده و همیشه درحال تغییر بوده!
تو چند سال اخیر که خودم تو پروژه های مختلف از ری اکت استفاده کردم، تغییرات اساسی این کتابخانه رو به چشم دیدم ( از منسوخ شدن کلاس کامپوننت ها گرفته تا جایگزین شدن برخی هوک های قدیمی با هوک های جدیدتر )
کتابخونه ریکت همیشه درحال تغییره و به عنوان یک React Developer باید همیشه تغییرات جدید این کتابخانه رو بررسی کنیم و خودمون رو بروز نگه داریم.
ری اکت امروز، با ری اکت 2 سال پیش خیلی فرق کرده! پس اگه یک پروژه با React توسعه بدیم، باید همیشه و مدام بر اساس تغییرات جدید کتابخانه ری اکت، بروزرسانیش کنیم.
سرعت تغییرات ری اکت خیلی بالاست و این میتونه یکی از معایب کتابخانه ری اکت باشه!
این مورد تو سایر فریمورک ها یا کتابخانه های جاوااسکریپتی مثل Angular خیلی کمتره.
اگه قصد پیاده سازی یک وب اپیکیشن با React داریم، حتما باید یک تیم نگهداری برای اون پروژه داشته باشیم تا پروژه ری اکتی خودمون رو بر اساس تغییرات جدید ری اکت، بروزرسانی کنیم.
میدونم یکم عجیبه 🙂 چون انعطاف پذیری تو هر کتابخانه، فریمورک یا زبان برنامه نویسی به عنوان یک برتری و نقطه قوت درنظر گرفته میشه.
اما React انعطاف پذیری بیش از حدی داره و این میتونه یک مورد از معایب ری اکت باشه.
هر کتابخانه یا فریمورک یکسری ساختار از پیش تعریف شده برای کد زدن، استایل دهی و .. داره که توسعه دهنده ها و برنامه نویس های اون باید اون ساختار رو رعایت کنن.
این ساختاری که راجبش صحبت میکنیم خیلی خیلی مهمه. شاید بپرسیم چرا؟
فرض کنیم یک پروژه ری اکتی رو به ما میدن که با ری اکت توسعه داده شده، ری اکت انعطاف پذیری خیلی خیلی بالایی داره. پس توسعه دهنده های این پروژه ممکنه از هر پترن، ساختار یا روشی برای کد زدن، استایل دهی و .. استفاده کرده باشن!
این یعنی ممکنه پیش بینی و درک این پروژه سخت باشه، چون توسعه دهنده های این پروژه به روش های مختلف میتونستن این پروژه رو توسعه بدن. ( اگر انعطاف پذیری ری اکت کمتر بود چنین مشکلی پیش نمیومد )
اگه یک تیم React Developer رو با یک تیم جدید عوض کنیم، با پوست و خون این مشکل رو حس میکنیم 🙂
البته صادقانه بخوام بگم این مورد ( انعطاف پذیری خیلی بالای ری اکت ) همیشه بحث برانگیز بوده.
توسعه دهنده هایی که با فریمورک هایی مثل Angular کار کردن همیشه یک گارد نسبت به React دارن، دلیلش اینه که React مثل انگولار ساختار و چارچوب خیلی مشخصی نداره.
درسته که کتابخانه ریاکت یک کتابخانه غنی با ویژگی ها و امکانات فوق العاده و عالی برای پیاده سازی اپیکیشن های تحت وب بزرگ ( در حد دیجیکالا و دیوار ) هست، اما ما React Developer ها همیشه از کامل نبودن امکانات این کتابخانه شاکی بودیم :/
برخلاف سایر فریمورک های جاوااسکریپتی که خودشون تمام امکانات و ویژگی های مورد نیاز مارو تامین میکنن، ری اکت این نیاز های مارو به کتابخانه های خارجی سپرده تا از اونها استفاده کنیم.
اگه با معماری MVC آشنا باشیم، میدونیم که React فقط بخش View یک اپیکیشن رو کنترل میکنه. برای بخش های Model و Controller ما به کتابخانه های خارجی نیاز داریم.
این یعنی اگه از ریکت استفاده میکنیم، همیشه محتاج کتابخانه های خارج از خود ری اکت هستیم ( بر خلاف فریمورک های جاوا اسکریپتی که خودشون همه چی رو دارن و کل MVC رو پوشش میدن )
از اونجاییکه ری اکت همیشه در حال تغییر و بروزرسانی های اساسی و ساختاریه، تیم ری اکت نتونسته داکیومنت ری اکت رو بر اساس آخرین تغییرات ری اکت بروزرسانی و نگهدارری کنه!
خیلی از هوک ها منسوخ شدن اما همچنان تو داکیومنت اصلی ری اکت یا داکیومنت های سایت های دیگر موجودن! از طرفی برخی هوک های جدید مثل هوک useTransition تو کمتر داکیومنت و آموزشی هستن.
شاید برای کسایی که چند سال تجربه کار با ری اکت دارن، این مورد خیلی مشکل ساز نباشه چون از تغییرات ری اکت اطلاع دارن اما برای کسی که تازه قصد یادگیری ری اکت رو داره و میخواد شروع به مطالعه داکیومنت ری اکت کنه قطعا گیج کنندس!
لطفا برای مطالعه ادامه این مقاله + تیکه کدها و مثالهای بیشتر روی لینک زیر کلیک کنید :