تفاوت ReactJs با React Native
nazanin در 18/08/09
مقاله امروز در مورد تفاوت های React Native و React js است.
معرفی React Native و React Js
برنامه نویسان توسعه موبایل همواره به دنبال راه و روشی برای توسعه و گسترش سریعتر
و ساختن اپلیکیشن هایی با کارایی بهتر می باشند. با وجود دو سیستم عامل بزرگ در
دنیای موبایل ها، شرکت های مختلف در زمان طراحی اپلیکیشن های موبایلی خود همیشه با
دغدغه های متفاوتی مانند کاربر پسند بودن اپ و یا اپلیکیشن باید با سرعت زیادی روی دستگاه ها و
سیستم عامل های مختلف قابلیت توسعه و اجرا داشته باشد و نیز روبرو می باشند. آنها به دنبال یک
زبان برنامه نویسی هستند که روی پلتفرم های مختلف اجرا شود. در زمینه تلاشهای بسیاری
شد اما به نتیجه ای نرسید تا اینکه فیسبوک در سال 2013 اولین نسخه stable از یک کتابخانه
جاوا اسکریپت رو بصورت open-source بر روی GitHub منتشر کرد.اسم
این کتابخانه ReactJs بود که برای توسعه وب اپلیکیشن ها مورد استفاده قرار میگرفت.این
کتابخانه با سرعت بسیار بالا و سادگی که داشت که خیلی سریع مورد توجه قرار گرفت و
اواخر مارچ 2015 بود که فیسبوک یک فریم ورک جدید به اسم React Native منتشر کرد که به برنامه نویسان اجازه می داد فقط
با استفاده از جاوا اسکریپت و کتابخانه React اپلیکیشن
موبایل برای ios بسازند. بعد از مدت کوتاهی گام اصلی با انتشار React Native برای Android برداشته
شد. حال دیگر توسعه دهنده ها دیگه مجبور به نوشتن کدهای جداگانه برای سیستم عامل
های مختلف نبودند و استارتاپ ها و صاحبان کسب کار به توسعه دهنده هایی
دسترسی پیدا کردند که برای هر دو سیستم عاملAndroid و IOS اپلیکیشن طراحی می کردند.
React-Native از ReactJS به
عنوان کتابخانه ی جاوا اسکریپت استفاده می کند، بنابراین ساختن یک برنامه تنها
نیازمند دانش و مهارت در زمینه جاوا اسکریپت و کتابخانه های React می باشد.
React Native به توسعه دهندگان اجازه می دهد تا بتوانند
اپلیکیشن را قادر سازند تا از ویژگی های دستگاه استفاده کنند. ویژگی هایی مانند GPS، Rotate، Zoom و
… . این کار با دسترسی به منابع حافظه کمتر و سرعت لود سریعتر انجام می گیرد.
استفاده از
React Native باعث شده که
اپلیکیشن مرتب تر و بهتر عمل کند.
از اپلیکشن های معروف ومحبوبی
که از React Native استفاده می کنند می توان بهFaceBook، Bloomberg، Instagram، SoundCloud
Pulse، Gyroscope اشاره کرد.
برای آشنایی با ویژگی های یک اپلیکیشن حرفه ای می توانید مقاله اینجا کلیک کنید
ویژگی های از React Native
- کامپوننتی بودن و امکان استفاده از کامپوننت ها در پروژه های دیگر و همچنین استفاده از کامپوننت های دیگر افراد که هم باعث سادگی میشه و هم سریعتر شدن کار.(هزاران کامپوننت برای هزاران کار)
- ساخت بسیار راحتتر رابط کاربری های زیبا برای اپلیکیشن (به دلیل وجود استایل css مانند و jsx) که میبینید که skype هم تجدیدنظر کرد و به ریکت نیتیو پیوست به تازگی.
- هیچ محدودیتی برای شما ندارد . شما میتوانید در مواقع لزوم ریکت نیتیو کدهای java , swift بنویسید تا کامپوننت های نیتیو خود را به وجود بیارید. (البته که هر کامپوننتی نیاز داشته باشید ایجاد شده ولی این مورد محض اطمینان هست).
- یک فرانت اند کار خوب میتواند با گذاشتن تایم کمی ریکت نیتیو رو به خوبی فرا بگیره و همچنین برنامه نویس های اندروید و Ios هم که تا الان نیتیو کار میکردند با یادگرفتن پایه های وب سمت ریکت نیتیو جذب شوند.
- بدون اینکه از اطلاعی از زبان های نیتیو داشته باشید میتوانید کار کنید و فقط باید قواعد اپلیکیشن و تفاوتش با وب رو فرا بگیرید.
- نیازی نیست برای توسعه اپ اندروید از اندروید استودیو و برای ios از xcode استفاده کنید و آزادانه میتوانید از هر ادیتوری استفاده بکنید و لذت ببرید.
- و ...
شروع به کار و دسته بندی
React Native یک فریم ورک است در صورتی که React js یک کتابخانه از جاوا اسکریپت است که شما می توانید برای وب سایتتون از آن استفاده کنید. وقتی شما یک پروژه جدید را با React js شروع می کنید به احتمال زیاد یک زیر شاخه مثل Webpack را باید انتخاب کنید. اما React Native همه ی نیاز های شما را دارد و اصلا نیازی به زیر شاخه نداره و تقریبا میشه گفت از این نظر کامل است.
ظاهر طراحی شده
اکثر کامپوننت های ReactJs را می توان به معادل آنها در HTML ترجمه کرد، برای مثال <viwe> به <div> و <text> به چیزی مانند ترکیبی از <span> و <p>. به همین علت، کتابخانه های مورد استفاده با ReactJS نمی توانند در چارچوب React Native استفاده شوند.
React Native از HTML برای طراح اپلیکیشن ها استفاده نمی کند ولی یک سری اجزای جایگزین فراهم میکند که مانند تگ های Html کار می کند. برای استایل دهی (style ) به اجزای React Native باید یک stylesheet داخل جاوا اسکریپت ایجاد کنید که خیلی شبیه به همون css است ولی دقیقا اون نیست.
انیمیشن ها و حرکات
با React Native شما یک روش کاملا جدید را برای به حرکت در آوردن اجزای برنامتون بوسیله جاوا اسکریپت یاد می گیرید. روش توصیه شده برای به حرکت درآوردن اجزا، شما باید از API های متحرکی که توسط React Native ارائه شده اند استفاده کنید. ولی در React js برای انیمیشن ها و متحرک کردن عناصر باید از افزونه ها و عناصر کمکی مانند React CSS Transitions Group استفاده کنید.
React Bative یک کتابخانه ای شبیه Velocity.js را به نام Animated و همچنین LayoutAnimation را فراهم می کند، که متاسفانه تنها توسط iOS پشتیبانی می شود.
اگر چه تفاوت های بیشتری نسبت به شباهت ها بین ReactJS و React Native وجود دارد، اما برخی ویژگی های مربوط به هر دو هستند. مردم تمایل دارند بگویند که شباهت اصلی این دو کمبود اسناد در هر دو است. برعکس، پس از انتشار React 16، مستندات عالی است و در وب سایت رسمی موجود است.
React-Native از ReactJS به عنوان کتابخانه ی جاوا اسکریپت استفاده می کند، بنابراین ساختن یک برنامه تنها نیازمند دانش و مهارت در زمینه جاوا اسکریپت و کتابخانه های React می باشد.