چرا React سخته ؟

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



اکثر این افراد فقط با HTML, CSS, jQuery و Bootstrap آشنا هستند و از خود جاوااسکریپت شاید ۷ یا ۸ متد رو یادگرفتند.

مشکل دقیقا همینجاست که آموزش درست تو ایران خیلی کمه، تقریبا تمام آموزشگاه ها و آموزش‌های آنلاین به جای تدریس کامل تکنولوژی اصلی سعی به تدریس jQuery می‌کنن و خواسته یا ناخواسته کاربر رو از اصل مطلب که JavaScript هستش دور می‌کنن.

ولی تقریبا تمام کتابخونه‌های جاوااسکریپت (React, Vue, Ember, ...) به عنوان پیش نیاز دانش متوسط از جاوااسکریپت رو می‌خوان و یادگیری این لایبریری‌ها و فریم‌ورک‌ها ۲ ساعت هم بیشتر زمان نمیبره. بله ۲ ساعت :) (البته اینکه Master بشید و کاملا تسلط داشته باشید شاید ۱ سال طول بکشه)


دانش متوسط جاوااسکریپت چی هستش اصلا ؟

بخشی از این داستان اصلا ربطی به جاوااسکریپت نداره، و به طور کلی دانش برنامه نویسی حساب میشه برای مثال Object Oriented Programming و Functional Programming یا اصول برنامه نویسی مثل K.I.S.S یا DRY و بخش دیگه ویژگی‌های خود زبان هستش برای مثال: async/await , promise , Object iterator و ...

قسمت مهمتری هم به عنوان ابزار برنامه نویسی هستش برای مثال ESlint، لینتر جمع و جور که با ۱۰ دقیقه وقت گذاشتن برای کانفیگ کردنش به کد ما چهار چوب میده.

بخشی این ابزار‌ها تحت هر شرایطی برای هر پروژه‌ایی (به طور کلی پروژه های وب و جاوااسکریپت) لازمه و مابقی بر حسب نیاز توسط خود شما به عنوان برنامه نویس باید انتخاب بشه برای اینکه ایده کلی داشته باشید به صورت دسته بندی شده بعضی از ابزار‌‌ها رو لیست کردم:

همیشه لازمه

  • Linter: ESLint
  • Code Editor: VScode, Atom, Sublime
  • Code Formatter: Prettier

ممکن هستش لازم بشه

  • Module Bundler: Webpack
  • Package Manger: NPM
  • Task Runner: NPM
  • Compiler: Babel

(این ابزارها برای React یا Vue یا هر کتابخونه دیگه‌ایی نیستند، به طوری کلی برای پروژه‌های وب استفاده میشن)

برای پروژه‌های کوچیک و جمع و جور برپایه React اطلاعات کلی درباره Webpack و Babel لازمه ولی اگر یه خورده کار بزرگتر شد باید کار با این ابزارهارو کامل یادبگیرید.

علاوه بر این ابزارها لازمه که ES2015 یا ES6 رو کامل بلد باشید.

و اگر به طور کلی بخوام جمع بندی کنم پیش نیازهای ری‌اکت میشه:

HTML -> CSS -> JavaScript -> NPM -> Webpack -> OOP -> ES2015/ES6 -> Babel -> JSX -> ReactJS

بنابراین اگر مستقیم برید سراغ ری‌اکت حتما حتما به مشکل می‌خورید و دلیلش کاملا مشخصه.