React.JS

چرا من React.js رو انتخاب کردم؟

همونطور که قبلا گفتم، چند وقتیه که پا گذاشتم تو سرزمین جاوااسکریپت. برای همین دارم سرکی به گوشه کناراش میکشم و از بین فریمورک‌ها و کتابخونه‌های مختلف سمت کاربر و سمت سرور، فریمورک‌ها و کتابخونه‌های موردنظرم رو انتخاب میکنم. امروز میخوام راجع به React.JS صحبت کنم که بهمون کمک میکنه تا بتونیم وب اپ دلخواهمون رو سمت کاربر پیاده‌سازی کنیم.

راستش اول فکر می‌کردم برای فریمورک سمت کاربر، انتخاب‌های زیادی ندارم. از قبل آشنایی مختصری با Angular.JS داشتم و فکر میکردم هرچی هست و نیست همینه! چرا؟ چون هنوز جز اون چیز دیگه‌ای رو نمیشناختم. در هر صورت، قبل از شروع کار با Angular تصمیم گرفتم جست‌جویی کنم، بلکه بهتر از اون رو پیدا کنم. تو جست‌جوهام خیلی زود به چهارتا اسم رسیدم: Angulr, Ember, Backbone, React. باز دوباره من موندم و یه انتخاب سرنوشت‌ساز!

الغرض، وقت گذاشتم و مقالات مختلفی رو درمورد هر کدوم از اونها خوندم و نمونه‌ی کدها و مثال‌هاشون رو بررسی کردم. با توجه به وضعیت خودم و نیازهام، React رو انتخاب کردم. اگه میخواهید بدونید چرا، میتونید دلایلم رو در ادامه بخونید.

اول از همه اینکه یادگیری React به نسبت ساده‌تر از بقیه‌ست. من هم که اول راه جاوااسکریپت هستم، پس باید یکی رو انتخاب کنم که عصای دستم و چراغ راهم باشه. شک نکنید React بهتون کمک میکنه تا چیزهای زیادی یاد بگیرید.

دوم، React همه‌ی تمرکزش رو گذاشته رو طراحی ظاهر و به قول خودش به V تو MVC پرداخته. پس از درگیر کردن شما با پیچیدگی‌های اضافی تو سمت کاربر خودداری کرده. تو سایت React درمورد خودش نوشته:

Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it’s easy to try it out on a small feature in an existing project.

سوم، React رو میشه سمت سرور هم کامپایل کرد. اگه این کار رو انجام بدید، از نطر SEO سایتتون رو بهبود بخشیدین، چون موتورهای جست‌جو راحت میتونن مطالبتون رو بخونن، حتی اگه از جاوااسکریپت سر در نیارن. البته اگه اسکریپتتون رو سمت سرور کامپایل کنید، وگرنه که اگه صرفا بخواهید سمت کاربر از React استفاده کنید و سمت سرور کاری به کارش نداشته باشید، از این نظر فرقی با بقیه نداره.

چهارم، React بالا تا پائینش جاوااسکریپته! هرچی مینویسید جاوااسکریپته! به عبارت دیگه React برنامه‌نویس‌پسندتره تا طراح‌پسندتر! یعنی چی؟ یعنی برنامه‌نویس‌ها بیشتر باهاش حال میکنن تا طراح‌ها! اگه برنامه‌نویس هستید React دوست صمیمی شما میشه. اگر هم طراح هستید نگران نباشید، React مثل یه راهنما کمک‌دستتون خواهد بود.

پنجم، React از JSX استفاده میکنه، که سریع و چابکه. گرچه خیلی‌ها ممکنه با JSX حال نکنن. اما یواش یواش داره فراگیر میشه، چون سرعت خوبی داره و برخی از کم و کاستی‌های جاوااسکریپت سنتی رو از بین برده. React از Virtual DOM استفاده میکنه که باعث میشه سرعتش نسبت به کدهای جاوااسکریپت عادی سرعت بیشتری داشته باشه. بی‌شک تا امروز، React از Angular و Ember و Backbone سریع‌تره. البته با این سرعت پیشرفت تکنولوژی، فردا رو خدا عالمه!!

jsx virtual dom

ششم، آخرین نسخه‌ی React مطابق با ES2015 یا همون آخرین ورژن EcmaScript (همون جاوااسکریپت خودمون) طراحی شده، درواقع شما موقع کار با React دارین با نسل آینده‌ی جاوااسکریپت، امروز کار میکنید! یا به قول فرنگی‌ها:

Use next generation JavaScript, today.

ES2015 ES6

هفتم، React توسط Facebook حمایت میشه، پس خیالتون راحت باشه که تا مدت‌ها میتونه به مدد حمایت‌های فیسبوک سرپا و به‌روز بمونه.

هشتم، وجود مبارک React Native. درواقع یکی از مهمترین چیزهاییه که من رو به سمت React کشید، همین React Native بود. React Native به ما این امکان رو میده که با React برای Android و iOS اپ طراحی کنیم. البته نه مثل Phonegap و Apache Cordova، چون اگه با اینها کار کرده باشید متوجه میشید که چقدر اپ‌هایی که باهاشون طراحی شدن کند و ناکارآمد هستن! اما اپ‌هایی که با React Native طراحی میشن اینطوری نیستن، چون اصولا Native هستن. با React Native میتونید اپ‌های دلخواهتون رو برای iOS و Android بنویسید، اپ‌هایی که میتونن با سرعت و کیفیت بالایی روی گوشی‌های مختلف اجرا بشن.

react native

 این بود دلایل من برای انتخاب کردن React. امیدوارم تو مطالب بعدی بتونم منابعی که برای یادگیری React دارم ازشون استفاده کنم رو بهتون معرفی کنم.

شاد باشید و موفق.

قربان شما،

آمیرزا

آمیرزا

یه برق‌خونده‌ی علاقه‌مند به برنامه‌نویسی

68 دیدگاه برای “چرا من React.js رو انتخاب کردم؟

  1. خیلی مطلب خوبی بود مخصوصا برای من که دارم برای یادگیری اصولی JS تلاش می‌کنم.
    – لینک‌های اشتراک‌گذاری هم بزاری ته مطلبت عالی می‌شه

  2. توضیحات خوبی بود. منم واسه امسال react رو تو برنامه دارم که حتما یادبگیرم.
    ولی در مورد اینکه Apache cordova رو ناکارآمد خوندی خیلی شک دارم!!!!!

    1. ممنون از لطفت حمید جان،
      درمورد Apache Cordova، به شخصه تجربیات خوبی باهاش نداشتم. متاسفانه وقتی اپلیکیشنی که مینویسی پیچیده و سنگین میشه، کندی رو به وضوح میتونی توش احساس کنی! این مشکل رو مخصوصا تو اسلایدرها داشتم، به جای حرکت روان، پرش داشتند! البته من تو محیط اندروید با این مشکل مواجه شدم و نمیدونم تو iOS هم همینطوری هست دقیقا یا نه!

      1. سلام
        بله من با فون گپ و Cordova اپ نوشتم برای اندروید. خیلی کند و سنگینن و واقعاً ناکارآمد
        فکر میکردم اپ های که با ionic نوشته بشه این مشکل رو ندارن وای اونا هم همین مشکلو دارن.
        میگن که React Native سریعه و اپ هاش دیگه مشکلات فون گپ رو نداره. من خودن تجربه کار با React Native رو ندارم اگر از دوستان کسی تجربشو داره لطفاً با ما هم در میون بزاره

        1. ممنون از اینکه تجربه‌ت رو با ما درمیون گذاشتی.
          من خودم به شخصه با React Native هنوز کار نکردم. ولی از اونجایی که از المان‌های Native خود سیستم عاملهای اندروید و iOS استفاده میکنه، بالطبع سرعت اپ‌هایی که باهاش نوشته شده باید بیشتر از سرعت اپ‌هایی باشه که با Cordova نوشته شدند.

  3. درود بر شما،
    خب من هنوز با reactjs به درستی آشنا نشدم ، بیشتر با انگیولار نسخه یک آشنا شدم و الان هم در برنامه دارم که انگیولار نسخه دو و reactJs رو در دستور کار خودم قرار بدهم .
    از قدرت انگیولار هر چه بگویم کم گفتم ،
    اما شنیدم که فریمورکی آمده که فیسبوک و اینستاگرام از اون استفاده میکنند و اصلا تعلق به فیسبوک داره ،
    و البته اخیرا هم شنیده ام که گوگل قصد داره که به گونه ای از reactJs در هسته انگیولار استفاده کند (البته از صحت اش مطلع نیستم ) که اگر چنین باشد ، به نظرم میاد که فرا گرفتن انگیولار مخصوصا حالا که نسخه ۲ اون از حالت بتا خارج شده و نیازهای موبایل و دسکتاب رو مرتفع میکنه یک عمل منطقی هست .

    هر چند ما برنامه نویس های کلاینت سایت دریافته ایم که نمیتوانیم روی یک تکنولوژی توقف کنیم ، باید سریع تکنولوژی ها رو یاد بگیریم و اگر موردش پیش اومد به کار ببنیدم و سریع برویم سراغ تکنولوژی بعدی .

    1. خوبی react js اینه که ساده ست. من برنامه نویسی رو دوست دارم ولی طراح نیستم. برا همین react js رو انتخاب کردم. چون به نظرم اومد که انگولار بیشتر مناسب طراح هاست.
      درمورد تغییر تکنولوژی ها درست میگی، تغییراتشون هر روز داره بیشتر هم میشه. باید تغییر کرد تا پیر نشد.

  4. سلام و خسته نباشید .
    ممنون از مقاله ای که گزاشتین .خیلی عالی بود . من برنامه نویسی وب انجام میدم و توی front-end تجربه کار با جی کوئری و جاوااسکریپت و backbone , angular رو دارم ..خب حالا موضوع اینجاست که این مزایای React (سرعت رندر کردنش)منو کشونده به سمت یادگیریش… سوالی که برای من پیش اومده اینه که خب react فقط V هستش توی Mvc …پس ما باید React رو با فریم ورک های دیگه یا کتابخونه های دیگه جاوااسکریپت ادغام کنیم ….. چه ترکیب هایی رو میشه استفاده کرد ؟…. مثلا من خودم خیلی از جاوا اسکریپت استفاده میکنم تا جی کوئری …. چه طوری میشه حالا؟
    اخه React روی virtual dom کار میکنه اما javascript , jqueryدر حقیقت روی Dom کار میکنن…. پس چطوری باید اینها رو ترکیب کرد ؟
    مثلا ایونت هایی که توی جاوا اسکریپت bind میشن …بعد از Render شدن توسط react از بین میرن ؟ یا بالعکس ؟ میشه یه راهنماییی کنید منو ؟
    اگه منو راهنمایی کنید خیلی ممنون میشم

    1. ارشک جان خوشحالم که ReactJS رو انتخاب کردی.. امیدوارم که تجربه‌ی خوبی با React داشته باشی.
      اول باید بگم، درسته که React معروفه به V تو MVC، اما واقعیت اینه که React چندان نیازی به راهکار MVC نداره. درواقع React نماینده‌ی یه راهکار جدید برای طراحیه، در واقع بخشی از اونه.
      خود React بیشتر به طراحی ظاهر اپلیکیشن میپردازه، ولی برای بهبود اپلیکیشنی که طراحی کردید، بهتره React رو باید در کنار متدهای دیگه‌ای به کار بگیرید مثل Flux که فیسبوک معرفیش کرده. Flux یه فریمورک نیست، بلکه یه راهکاره. از جمله چیزهایی که برطبق این راهکار پیاده شدن میشه به Redux اشاره کرد. در واقع اگه React رو درست پیاده‌سازی کنی و به Redux هم تجهیزش کنی، دیگه بی نیاز به راهکار MVC میشی. راستی، درکنار اینها حتما به React Router هم نیاز پیدا میکنی.
      درمورد Virtual DOM هم حق با شماست. درواقع وقتی با React کار میکنی، بهترین کار اینه که بیخیال تغییر دادن DOM با JQuery بشی تا اختلالی تو کارکرد برنامه‌ت به وجود نیاد و همه چی ساده‌تر و شفاف‌تر بمونه. گرچه میتونی تو برنامه‌ت از JQuery استفاده هم کنی، ولی این فقط باعث میشه برنامه‌ت از یکدستی و استاندارد خارج بشه.

  5. آقا یه سوال. من نه که از لاراول اومدم و نود تازه کار هستم سوالی داشتم.
    این vuejs هم خیلی داره رشد می کنه و می خاستم بدونم اون رو تست نزدید؟

    1. نه، هنوز vue.js رو آزمایش نکردم. اما نگاهی گذرا به مثالهاش انداختم، به نظر جالب میاد.
      مخصوصا لاراول‌کارها احتمالا باهاش حال میکنن، چون لاراول جزو اسپانسرهاش هست.

  6. سلام میخواستم بدونم با jquery تداخل نداره چون هیچ کسی نمیتونه ادعا کنه که میشه jquery رو از برنامه نویسی کلانت خارج کرد به نظر من که نشدنیه هر فریم ورکی رو که استفاده میکنیم باید در کنار jquery باشه یکی از دلایلم هم وجود میلیون ها پلاگینیه که مجبوریم ازشون استفاده کنیم که بر پایه ی همین jquery نوشته شده .

    1. بهتر اینه که وقتی از React استفاده میکنیم از jQuery استفاده نکنیم، چون مدیریت ظاهر صفحه باید در یَدِ قدرتِ react باشه!
      در هر صورت، با توجه به افزونه‌های جدید و همینطور تغییرات جدید خود جاوااسکریپت، کم کم میشه بیخیال استفاده از jQuery شد.

  7. سلام , واقعا بلاگ عالیی ااییی دارید
    من قصد یادگیری یه فریمورک دارم که از الان کارم به مرحله حرفه ای تر رسیده استفاده کنم
    چون تو این پروژه به حد ۲۰۰۰ خط کد ترکیبی جی کوئری و جاوااسکریپت رسیدم
    و اینکه چیزایی که برام خیلی مهم هسن سرعت و زیبایی کارم هست و این نکته خیلی برام مهمه چون تو کارام از جدیدترین تکنولوژی های وب استفاده میکنم قبلا کمتر الان کم کم داره زیاد میشه مثل gsap و snap svg و … و خیلی به اینا علاقه دارم و الان موندم چه فریمورکیو انتخاب کنم
    بین angular و react و vue و ember و backbone موندم و جدیدا هم یکی اومده به اسم meteor که اینم ببینید جالبه کارش
    به نظرشما برای من کدوم بهتره چون میخوام ادامش بدم

    1. نظر لطفته حسین جان،
      اما درمورد انتخاب فریمورکِ سمتِ کاربر، من تو این نوشته دلایل خودم رو برای انتخاب React گفتم، به نظر من شما بسته به نیازهاتون باید فریمورک خودتون رو انتخاب کنید و برای همه نمیشه یه نسخه‌ی واحد پیچید!
      من به شخصه React متناسب نیازهام بود. به شما هم توصیه می‌کنم که تو انتخابتون حتما به نیازهاتون توجه داشته باشید.

  8. سلام امیرزا گل….خسته نباشی و ممنون از مطالب خوبی که میزاری….
    من یه سوالی داشتم و نمیدونم اینجا جای خوبیه برای مطرح کردنش یا نه (صد البته در مورد reactjs هستش)
    در حقیقت یه راهنمایی میتونیه باشه یا هر چی 🙂
    من جدیدا توی روند یادگیری React به اینجا رسیدم که مثلا میام با npm کتابخونه ها رو اد میکنم به پروژم …بعدش با دستور Require کتابخونه های رو رفرنس میدم …. (خیلی خوشم اومده از این روش کدهام خیلی تمیز تر و استاندارد تر به نظر میان …البته از نظر خودم )
    در حقیقت در نهایت تنها فایل js که من توی صفحه وب رفرنس میدم یه فایل bundle شده با reactify … هستش….
    خب تا اینجا که همه چیز خیلی خوب و مرتبه …. اما موضوع اینه من تو مرحله develope هستم … کد هام تست هستن ….اما اگه یه پوژه واقعی رو در نظر بگیریم ..نمیشه که من بعد از هر تغییر فایل هام رو دوباره bundle کنم که…. خیلی طولانی میشه…. یادمه که یه جایی دیدم ابزار هایی مثل watch بود که تغییرات رو به صورت اتوماتیک به باندل های اعمال میکرد..ولی الان توی اینترنت نمیتونم چیزی رو پیدا کنم …. یا شاید هم من دارم اشتباه میکنم …… حالا به نظر شما من باید چیکار کنم >؟ میشخ یه راهنمایی کنید.ممنون میشم

    1. ممنون از لطفت ارشک جان،
      اگه سوالت رو درست متوجه شده باشم، باید بگم که بله، میشه این کار رو کرد که هر بار bundle کردن و reload شدن صفحه اتوماتیک انجام بشه. من برای این کار تو مرحله‌ی طراحی از webpack-dev-server استفاده میکنم و رو حالت hot server تنظیمش میکنم تا این مشکلی که میگی حل بشه و نیاز به باندل کردن‌های پی در پی نباشه. تو لینک زیر یه آموزش مختصر و مفید برای این کار وجود داره، امیدوارم به کارت بیاد:
      ReactJS – Environment Setup

      1. سلام. امیرزا ممنون. با راهنمایی هات خیلی به من کمک میکنی
        .همیشه لطف داری به ما. این آموزشی که گزاشتی خیلی کمک کرد ممنونم…. 🙂

  9. سلام
    من تازه دارم با react اشنا میشم. میخوام بدونم آیا میشه بوسیله react با سروری مثل سرور تلگرام ارتباط برقرار کرد؟ یا میشه برای این کار از فریم ورکای دیگه ای استفاده کرد که بهترازینه؟

    1. هوممم.. البته ارتباط برقرار کردن با یه API، حالا چه میخواد مال تلگرام باشه چه جای دیگه‌ای، به خودیِ خود با خودِ React یا فریمورک‌های سمت کاربر انجام نمیشه، بلکه برای ریکوئست زدن به سرور نیاز پلاگین‌هایی مثل Axios, SuperAgent, Fetch, got یا حتی jQuery هست. من خودم از Axios.js برای این کار استفاده میکنم. البته گویا Angular خودش یه پلاگین برای همچین کارهایی داره. در هر صورت، با پلاگین‌های زیادی میشه امکان ارسال ریکوئست رو از اَپی که با React طراحی کردین فراهم کنید. البته در نظر داشته باشید که React سمت کاربر عمل میکنه.

    1. موقعی که این متن رو می‌نوشتم، angular 2 ارائه شده بود، ولی بازهم انتخاب من react بود. دلایلش هم همین چیزهاییه که تو متن گفتم.
      درمجموع برای نیاز من فعلا react بهترین گزینه‌ای هست که میشناسم.

  10. سلام

    با توجه به اینکه react فقط v از mvc هستش , بهتر نیس که زمان رو برای یادگیری angular یا ember بزاریم
    استفاده از library ( اونم نه framework )که فقط کدهای تر تمیز تری بهمون در قسمت v از mvc بهمون میده چه فایده ای می توه داشته باشه. ؟ با توجه به اینکه سایت های مثل google , yahoo , linkedin , دارن از angular و ember استفاده می کنن
    فونت باحالیم دارین ! :ی

    1. ممنون از نظرت مجید جان،
      خوب من دلایل اینکه چرا رفتم سراغ React رو تو همین نوشته گفتم. با توجه به “نیازهای من”، فعلا React بهترین انتخاب میتونه “برای من” باشه.
      حقیقتش من مدل و کنترلر رو سمت سرور دارم، سمت کاربر هم فقط نیاز به view دارم که React امکانش رو در اختیارم میذاره. 😀

  11. سلام وقتتون بخیر
    از این بابت که react JS یادگیریش میتونه کمک کنه تا بهتر react Native رو یاد گرفت هیچ هرفی توش نیست
    چون واقعا چیز خیلی خوبیه این ری اکت نیتیو
    اما من تو نوشته هاتون دیدم یکی از دلیل های انتخاب ری اکت سادگی و راحت بودن اون هست ، من مطمئن هستم شما داکیومنت های Vue.JS رو کامل نگاه نکردید
    من خودمخ هم با ویو جی اس و هم با ری اکت کار می کنم ، به این خاطر هیچ ارقی نسبت به هیچ کدومشون ندارم و منم مثل شما react Native دلیلی شد تا ری اکت جی اس هم یاد بگیرم اما ، الان هم بیشتر با ری اکت کار می کنم تا ویو اما نکته ای که هست واقعا وییو جی اس کار کردن باهاش راحت و لذت بخش هست با توجه به این که بسیار بسیار هم قوی هست شما میتونید داخل خود سایت ویو جی اس
    یک قسمتی داره که ویو رو با بقیه فریم ورک ها مقایسه کرده فک کنم همچین چیزی هست لینکش react with other framework اونجا خیلی دقیق توضیح داده

    1. درمورد Vue.js درست میگی حمید جان، البته اون موقع که من این نوشته رو مینوشتم با Vue.js آشنا نبودم. ممنون از اینکه این نکته رو گوشزد کردی. 😀

  12. اقا سلام ممنون از مطلب خوبت یه سوال فنی بین ری اکت جی اس با ری اکت نیتیو فرقی وجود داره؟؟؟؟ اقای نیکونیا تو کامنت بالا گفتن یاد گیری ری اکت جی اس کمک میکنه تا ری اکت نیتیو رو بهتر یاد گرفت خب با این حساب یه فرقی بینشون هست درسته؟؟؟ در اصل سوالم اینه اول باید react Js رو یاد گرفت بعد رفت سمت react native درسته؟؟؟؟ ممنون میشم واضح توضیح بدین

    1. سلام احمد جان،
      فریمورک React Native برای طراحی اپ برای اندروید و iOS هست. تو React Native با تقریبا همون روش‌ها و مفاهیمی کار میکنیم که وقتی داریم با React کار می‌کنیم باهاشون سرکار داریم. در واقع React یکی از dependency های React Native هست.

      1. خب که اینطور منو رفیقم بیشتر تمرکزمون رو vue.js 2 بود البته رفیقم کار کرده ویو رو ولی من هنو کار نکردم خیلی هم درمورد ری اکت نمیدونستم ولی هر سایتی میرفتم بیشتر زوم ها روی ری اکت بود تا فریم ورک های دیگه اطلاع چندانی از ری اکت نداشتم خب با این حساب همون اپ هایی که با جاوا یا فن گپ و… برای اندروید یا آی اُ اس ساخته میشن رو میتونیم با همون قدرت و کیفیت با ری اکت نیتیو بسازیم دیگه درسته؟؟؟ دیگه نیازی نیست که بخوایم جاوا برای اندروید یا فن گپ و…. این چیز هارو یاد بگیریم درسته اینی که گفتم؟؟؟؟خب اینطوری باشه که خیلی عالی میشه البته فن گپ که کد زنیش همون زبان های سمت کلاین خودمونه ینی اچ تی ام ال سی اس اس و جاوا اسکریپت ولی خب استفاده از فریم ورک جاوا اسکریپتی فک میکنم بهتر و با کیفیت تر باشه

        1. در واقع با React Native میتونیم با جاوااسکریپت اپ‌های Native برای اندروید و iOS بنویسیم. یعنی از نظر سرعت و کیفیت اپی که ساختیم مثل اپ‌هاییه که با جاوا برای اندروید نوشتن. phonegap هم خوبه، ولی مشکل اینه که اپی که با phonegap طراحی میشه نسبتا کندتر از اپ‌های Native هست. توی متن این نوشته هم به این موضوع اشاره کرده بودم.

  13. سلام.یه سوالی بنده دارم که نمیدونم اینجا مطرح کردنش درسته یا نه.
    ما به یک اپلیکیشن موبایل برای سایتمون که یک سایت آگهی مثل دیوار هست نیاز داریم.چند راهکار وجود داره که نمیدونیم از کدوم استفاده بکنیم.
    ۱ – توسعه به صورت native (فعلا اندروید و در آینده ios)
    ۲- استفاده از react native
    ۳- استفاده از فریمورک های spa و نمایش اون در یک webview

    هیچ کدام از موارد بالا رو هم آموزش ندیدیم و تیم نداریم و باید خودمون یاد بگیریم. یعنی زمان یادگیری می تواند مهم باشه.
    اپلیکیشن هم چیز خاصی نداره لیست آگهی ها رو باید از وب سرویس به صورت json بگیریم و نمایش بدهیم.و رویه هر آگهی کلیک میشه جزئیات آگهی نمایش داده میشه.
    گزینه سوم فکر کنم یکی از مشکلاتش این باشه که ممکنه در تمامی ورژن های اندروید یا webview پشتیبانی نشه . react js در کدام نسخه اندروید به بالا ساپورت میشه. ممنون میشم راهنمایی کنید.

    بذارید سوالم رو اینجوری مطرح کنم برای اپلیکیشن موبایل سایتی مثل دیوار کدام روش بالا پیشنهاد میشه و چرا؟

    1. من تجربه‌ی زیادی تو طراحی اپ‌های موبایلی ندارم، در هر صورت، اگه هیچ تجربه‌ای با React و React Native ندارید، و اپ‌تون هم ساده‌ست، میتونید برید سراغ Phonegap و Cordova یا همون گزینه‌ی سوم خودتون. اما اگه با React مشکلی ندارید، میتونید استفاده از React Native رو هم مدنظر قرار بدید.

  14. سلام خسته نباشید و ممنون بابت این مقاله زیبا با react native میشه سمت سرور سایت رو هم راه اندازی کرد یعنی یه اپلیکشن بسازیم که تنها با جاوا اسکریپت کار داشته باشه و در عین حال سمت سرور هم کار کنه؟ و سوال دیگر بنده اینکه ایا react native به اندازه java دارایی سرعت برای پردازش هست به این دلیل که همه اینده رو مال جاوا اسکریپت میدونن به نظرم بهتره تمرکز بیشتری روش داشته باشیم

    1. سلام محمد مهدی جان،
      سمت سرور رو هم میشه با جاوااسکریپت نوشت، ولی نه با React-Native
      در واقع React Native برای طراحی سمت کاربره، مثل React. ولی در هر صورت ابزارهای جاوااسکریپت زیادی برای توسعه سمت سرور وجود دارن، مثل expressJS، koaJS و AdonisJS

  15. سلام. عالی بود.. فقط یه موردی من mvc کار میکنم از یه نفر شنیدم که react با mvc زیاد مچ نیست و به مشکل میخوری بهتره بری انگولار الان هم دنبالم که ببینم چقدر حرف این فرد درسته یا نه؟

    شما میتونی راهنماییم کنی؟

    1. سلام امید جان …
      خود React تو صفحه‌ی رسمیش آورده:
      Lots of people use React as the V in MVC
      ولی حقیقتش وقتی داری از React استفاده میکنی باید مرام طراحیت رو یخورده تغییر بدی.
      در واقع تمام طراحی view رو باید با React انجام بدی. برای همین ارتباطت با سرور از طریق request زدن فراهم میشه. پس کنترلرت در واقع میشه request handler و دیگه لازم نیست هر بار یه view برگردونه، فقط کافیه request ها رو دریافت کنه و پاسخ مناسب رو بفرسته سمت کاربر.
      نمیدونم خوب تونستم منظورم رو برسونم یا نه.

  16. سلام

    بزرگوار از توضیحات خوبتون متشکرم

    بصورت پیش فرض رابطه reactJs با Seo زیاد جالب نیست و تا جایی که خوندم این رو باید با رندر کردن کد ها در سرور حل کرد

    میخواستم بدونم اگه روی سرور رند بشه دقیقا همین کارایی رو خواهد داشته؟

  17. ببخشید یک سوال داشتم من درحال یاد گیری لاراول هستم .و میخوام یک فریم ورک js هم در کنارش استفاده کنم و یاد بگیرم.الان نمیدونم کودومو بین ویو جه ی اس یا ری اکت یاد بگیریم..راستش بخاطر react native می خواستم react رو یاد بگیرم ولی دیدم که میگن react رو به اسونی نمیشه در کنار لاراول استفاده کرد……الان راهنماییم کنین چیکار کنم؟ممنون

    1. سلام
      حقیقتش با React هم میتونی به راحتی با سروری که با لاراول طراحی شده باشه کار کنی از این نظر فرقی با Vue نداره.
      ولی به طور کلی Vue خیلی راحتتر و ساده‌تر از React هست، برای همین خود من هم دیگه React رو رها کردم و رفتم سمت Vuejs

  18. سلام
    وبلاگ خیلی خوبی داری
    یه چیزی اینکه من مدتیه ری اکت رو دارم یاد میگیرم حالا وقتی پروژمو با npm نصب و راه اندازی میکنم همه چی خوبه تا وقتی build میگیرم.. اونوقت روترش فقط رو اکسپرس کار میکنه نه وب سروری مثل آپاچی سرچ کردم فهمیدم اگه با webpack کار کنم و باندل بسازم حل میشه اینکارو کردم حالا فقط route ایندکس کار میکنه ولی همچنان بقیش کار نمیکنه…
    دارم دیوونه میشم 😫

  19. با درود خدمت دوستان عزیز .
    از اینکه پرسش بنده را میخوانید ممنونم .
    پرسشی دارم در مورد کتابخانه ریاکت. من باهاش برنامه مینویسم و هیچ مشکلی ندارم ولی مشکل اصلی من کار با ریاکت نیست بلکه ایجاد پروژه هست .
    create-react-app
    کمترین نیازمندی های یک پروژه ریاکت رو بمن میده که حدود صد و بیست و پنج فلدر برام درست میکنه در پروژه های اینترپرایز ما قرار نیست یک پروژه ریاکت داشته باشیم بلکه چندین پروژه ریاکت داریم و همین مسئله باعث میشه نیاز پیدا کنیم که چندین پروژه در یک سولوشن بسازیم .
    با وضع کنونی ریاکت به ازای ده تا دونه پروژه ناقابل حدود دوهزار فلدر در سولوشنم میسازه این برای برنامه نویسی فاجعه هست و بیشتر بدرد بازی کردن با کد میخوره تا برنامه نویسی حرفه ای این حرکت مثل این میمونه که برای نوشتن یه برنامه سی شارپ کل دات نت فریم ورک یا کل دات نت کر رو توی فلدر سولوشن کپی کنی.
    الان پروژه خودم را بدون استفاده از
    create-react-app
    ساختم و کلی منابع مختلف اعم از
    axios , browser , babel , react-router , react , ….
    رو به پروژه اضافه کردم اما همچنان موقع استفاده از کامپوننت نمیتونم واژه کلیدی
    export , import
    رو استفاده کنم حتی
    “use strict”
    هم کردم ولی باز هم جواب نداد

    لطفا در این خصوص من رو راهنمایی بفرمائید که چگونه مشکل خودمو حل کنم . پرسشهای مختلفی در
    stack over flow , Code project
    گذاشتم اما پاسخ های مناسبی ازشون دریافت نکردم و هرکدومشون یه نظر واسه خودشون میدن .

    هدف پرسش :
    دقیقا میخوام منابع ریاکت رو با حداقل ها در پروژه اضافه کنم و یک
    internal cdn
    داشته باشم تا پروژه هام از یجا کمترین منابع مورد نیازشون رو دریافت کنند و اصلا داشتن صد و بیست و شش فلدر برام چیز قشنگی نیست.

    1. البته در نهایت شما وقتی پروژه‌تون رو Build می‌کنید، فقط یه فایل تحویل می‌گیرید که اون رو به نسخه نهایی کارتون ضمیمه می‌کنید….

  20. سلام وقتتون بخیر
    مطلب خوبی بود، همچنین با کامنت دوستان تونستم تا حدودی رو انتخابم مصمم تر شم، فقط یه سوال دارم اینکه من فقط UI کار کردم سمت سرور خیلی کم آشنایی دارم در حد ۱۰ درصد ، آیا Reactjs به کار من هم میاد، یعنی اینکه بک اند اصلا نمیدونم، به تنهایی میتونم از React استفاده کنم؟

    1. البته اگه ترتیب زمانی نوشته های بلاگ رو در نظر بگیری، من خودم دیگه با ری‌اکت کار نمی‌کنم و رفتم سراغ ویو جی اس .. 😅
      درمورد بک اند فکر کنم از یکی که بیشتر از من کار کرده باید سوال بپرسی. 😊

  21. خیلی ممنون از مطلب مفیدتون
    فقط یه پیشنهاد داشتم کامنت های تو در تو تعدادش که از ۲ بیشتر میشه غیر قابل خوندن میشن کاش یکم به استایلش میرسیدید
    فونت سایت هم دلچسبه 🙂

    1. ممنون که این مشکل رو اطلاع دادی. تا حالا تو موبایل به کامنت‌های تو در تو نگاه نکرده بودم. یه کوچولو استایلش رو ویرایش کردم، به نظرم الان بهتر شده. 👍

  22. سلام کسی که انگولار کار کنه بعد خیلی سخته که بخواد ریکت هم یاد بگیره ؟خیلی متفاوت هستن ؟یعنی تا ۱۰ سال دیگه انگولار بازم استفاده میشه ؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *