مقایسه React و jQuery


تفاوت بین React و jQuery در چه چیزی است و به نظرتون برنده این مقایسه کدام یک خواهد یود؟این دو کتابخانه هایی هستند که در زمان های مختلف و برای رفع مشکلاتی متفاوتی ایجاد شده اند.
بسیاری از افراد یکی یا هر دو آنها را به اشتباه فریمورک در نظر می گیرند که تفکری اشتباه است.فریمورک ها در واقع برای ما یک سری چارچوب و قوانین راه مشخص می کنند که باید بر اساس آن حرکت کنیم .از طرف دیگه کتابخونه ها روی یک سری موضوعات خاص تمرکز می کنند و سعی می کنند مشکلات خاصی را برطرف کنند و در عین حال آزادی عمل بیشتری را در اختیار ما می گذارند.
بنابراین میخواهیم تفاوت ها React و jQuery رو مورد مقایسه قرار دهیم و ببینیم که چه چیزی باعث منحصربه فرد شدن هر کتابخونه شده است.
اجازه بدید که کمی به عقب و به سال 2010 برگردیم.در اون روزها صفحات وب از سرور render میشدند و در front از جاوا اسکریپت برای افزودن برخی ویژگی های dynamic و اعتبارسنجی فرم ها و … استفاده میشد و قطعا برای مواردی مثل routing , state management,translations و چیزهای پیچیده دیگه از جاوا اسکریپت استفاده نمی شد.
در آن زمان استفاده از jQuery در حال افزایش بود.jQuery در سال 2006 منتشر شده بود و تا سال 2008 استفاده آنچنانی ازش نمیشد و در سال 2010 در سراسر جهان به عنوان یک کتابخانه محبوب و کاربردی مورد استفاده قرار می گرفت و اگر یاد داشتید که با آن کارکنید یک هنر محسوب میشد چون اکثر مصاحبه کنندگان در مورد آن سوال می پرسیدند.
jQuery چیست و چگونه کار می کند؟
jQuery توسط John Resig با هدف استفاده مجدد از قابلیت های موجود به راحتی و بدون نیاز به نوشتن مجدد ایجاد شد.این کتابخونه یک سری method هایی برای کارهای متداول front در اختیار شما میگذارد که بسیار سریع هستند و برای نوشتن این method ها نیاز به صدها خط کد است.توسعه دهندگان فقط با یک خط کد میتوانند از این method ها استفاده کنند.ما از آن برای دستکاری مستقیم DOM(نمایش UI elements) و درخواست های Ajax استفاده می کنیم.همچنین API های مرورگر را فراخوانی می کند.
jQuery به معنای واقعی کلمه برای اولین بار جذاب بود.jQuery پیشگام پکیج های جاوا اسکریپت بود و client-side development رو به سطح بعدی رسوند.
وضعیت حال حاضر
امروزه اکوسیستم جاوا اسکریپت به شدت بزرگ شده و تغییر کرده است.در ابتدا بیشتر کتابخونه ها و فریمورک هایی که ایجاد شدند بسیار شبیه jQuery بودند و به صورت functionality کار میکردند و برای کار با API های مرورگر سازگار کرده بودند.از طرف دیگر امروز ما برای توسعه وب از دیدگاه دیگری رفتار می کنیم.ما می دونیم که دستکاری مستقیم DOM به هیچ عنوان روش بهینه ای نیست زیرا DOM elements به همراه خود تعداد زیادی داده غیرضروری دارند که باعث می شود هنگام که صفحات وب پر از elements است، عملکرد کاهش یابد.امروزه jQuery در جهان کنونی بسیار کم اهمیت است اما کاملاً منسوخ نشده است، به خصوص هنگامی که ما به پشتیبانی مرورگرهای قدیمی (یعنی نسخه های قدیمی اینترنت اکسپلورر) نیاز داریم ، می تواند یک جذابیت باشد.اما توسعه وب تغییر کرده است و کتابخانه های سطح بالاتر مانند React منجر به این امر و تغییر شده است. ناگفته نماند که ابتدا باید اصول اولیه جاوا اسکریپت را بیاموزید و سپس به سمت این کتابخانه ها سطح بالا برید.
React چیست و چه تفاوتی با JQuery دارد
React یک کتابخونه برای ساختن رابط کاربری است(a library for building User Interfaces).اگر شما با ساختار MVC یا همون Model View Controller آشنا هستید،React بر روی لایه V (View) تمرکز دارد.
React ار این نظر متفاوت است که بک کتابخونه مدیریت کامپوننت های UI است . استفاده از React به این معنی است که شما برای تعریف رابط کاربری خود از یک متدولوژی پیشنهادی بر پایه کامپوننت پایبند باشید و ساختار خود را بر پایه lifecycle methods بنا کنید.اگر شما تمامی قوانین موجود را رعایت کنید، از لحاظ بهینه سازی دیگر نگرانی نخواهید داشت زیرا تغییرات DOM به حداقل میرسد.
تفاوت بزرگ این دو در آن است که React با “virtual DOM” کار می کند در حالی که jQuery به صورت مستقیم با DOM تعامل دارد.virtual DOM یک نمونه پیاده سازی شده از DOM بر روی memory است که تغییرات ایجاد شده را با نسخه قبلی مقایسه می کتد و فقط مواردی که مورد نیاز است را بروزرسانی می کند.این امر منجر به عملکرد بهتر و سریعتر می شود.
در React یک کامپوننت واحد شامل هر دو بخش عملکردی View و UI است.شاید کمی گیج کننده برسد ولی در هر کامپوننت شما منطق آن و با استفاده از jsx ظاهر آن را طراحی می کنید.این کار باعث می شود تا روند توسعه بسیار کارآمد تر باشد و شما بر روی کد خود کنترل و نگه داری بیشتری داشته باشید.
چه چیزی باید یاد بگیرم؟React یا jQuery؟
اگرچه ، نقش هایی که توسط jQuery و React بازی می شوند ، در مورد مدیریت رابط کاربری تا حدودی با هم همپوشانی دارند ، اما در اصل بسیار متفاوت هستند. اگر اکنون قصد دارید که توسعه وب را شروع کنید ، پیشنهاد می کنم ابتدا اصول JavaScript را بیاموزید. سپس یک فناوری مدرن را انتخاب کنید.برای من ، این فناوری React است.
اگر شما مهارت کافی بر روی javascript دارید و قصد دارید React رو یاد بگیرید پیشنهاد می کنم که دوره آموزش جامع react یک منبع عالی برای شروع کار است، رو تماشا کنید
منبع :بلاگ مشفق همدانی
مطالب زیر را حتما مطالعه کنید
آموزش کار با timing event ها
معرفی DOM به زبان ساده
constructor function در جاوااسکریپت
factory function در جاوا اسکریپت
this در جاوا اسکریپت (JavaScript)
تفاوت for in و for of
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
فکر میکنم این خط
React چیست و چه تفاوتی با React دارد
اشتباه هست و باید jQuery دومی میبود
سلام محمد جواد عزیز
ممنون از اطلاع رسانی.اصلاح شد