مقدمه : برنامه های تک صفحه ای به طور فزاینده در حال محبوب شدن هستند. سایت هایی که از کارکرد برنامه های تک صفحه ای استفاده می کنند، احساسی در شما ایجاد می کنند که در حال کار با اپلیکیشن های موبایل و تبلت هستید. اگر چه با استفاده از JavaScript و بدون استفاده از Framework و Library خاصی می توان صفحات SPA ساخت اما درگیری ها، چالش ها و مشکلات خاص خود را دارد. React نمونه ای از Framework های جاوااسکریپت است که برای ساخت برنامه های SPA استفاده می شود. SPA مخفف Single Page Application میباشد ، این نوع از اپلیکیشن ها گزینه مناسبی برای آموزشCRUD می باشد. امروزه کاربران خواهان برنامه های تحت وب سریعتر و دسترسی به Application ها با موبایل و تبلت و .... هستند. SPA چیست در واقع یک اپلیکیشن تحت وب چند صفحه ای است که یک صفحه والد و چندین صفحه فرزند دارد که این صفحات فرزند در مواقعی که درخواست شوند اجرا شده و بارگذاری می شوند.در SPA تمام منابع لازم زمانی لود می شوند که درخواست شده باشند و وقتی منابع آزاد می شوند که برای آنها درخواستی وجود داشته باشد. SPAسعی بر این دارد که حس یک برنامه دسکتاپ را برای کاربر ایجاد کند. SPA در مقایسه با اپلیکیشن های تحت وب سنتی در یک اپلیکیشن تحت وب سنتی همانطور که در شکل زیر می بینید بعد از اینکه کاربر درخواستی مبنی بر مشاده یک صفحه یا اجرای یک دستور ارسال می کند، این درخواست به سرور ارسال شده و صفحه رندر شده و Html معادل آن به کلاینت بر می گردد. در SPA زمانی که User درخواستی برای یک صفحه دارد این صفحه به صورت دینامیک لود می شود و یک سری توابع و رویدادها در همین سمت کلاینت انجام می شود .این فراخوانی توسط Ajax انجام می شود و دیتا توسط Json فراخوانی شده و از سرور بازیابی می شود.این عملکرد SPA به شما حس یک برنامه دسکتاپ را می دهد. مخاطبین این دوره کلیه ی موسسات و شرکت هایی که قصد دارند کارمندان خود را به جدیدترین تکنولوژی برنامه نویسی در سمت client هدایت کنند و از آن در پروژه های خود بهره مند شوند. برنامه نویسان حرفه ای و مبتدی Java و PHP و ASP و سایر زبان های برنامه نویسی که به شیوه های سنتی و قدیمی برنامه های تحت وب تولید می کنند. کلیه دانشجویان رشته نرم افزار که قصد دارند به صورت جدی وارد بازار کار برنامه نویسی تحت وب شوند. اهداف دوره در این دوره سعی بر آن است که دانشجو با کلیه ی مباحث React و Redux آشنا شده و بتواند یک سایت SPA شبیه به سایت درج آگهی را بصورت حرفه ای بسازد. همچینین دانشجو در طول این دوره آموزش می بیند که چگونه با برنامه نویس Back End ارتباط برقرار کند و نیازهای خود را به وی بگوید تا API مناسب را تحویل بگیرد. پیشنیاز آشنایی با زبان های HTML و CSS و JavaScript سرفصل مقدمات و آشنایی انواع شیوه برنامه نویسی تحت وب آشنایی با DOM و نحوه کار آن آشنایی به پیشنیازها معرفی زبان JavaScript و تاریخچه آن بررسی انواع برنامه نویسی تحت وب بررسی چالش ها و مشکلات طراحی وب سنتی (استفاده از Postback و لود مجدد صفحات) روش های مدرن بررسی مفاهیم اولیه و معماری سایت های SPA مروری بر XML و JSON بررسی و تفاوت Library و Framework بررسی و آموزش مفاهیم API بررسی و آشنایی با فریم ورک های سمت کلاینت معرفی ECMAScript راه اندازی محیط و نصب ابزارهای لازم جهت کار با react بررسی کتابخانه React.js و کاربردهای آن آماده سازی محیط توسعه و بررسی ابزارهای مورد نیاز معرفی و نصب Visual Studio Code معرفی و نصب NodeJS NodeJS جهت نصب و راه اندازی React Installing ReactJS using webpack and babel install React and react dom Set Compiler, Server and Loaders Naming Convention in React آشنایی با امکانات – Component - Unidirectional data flow and Flux – License مروری بر JavaScript معرفی شی Document رویدادها (Events) و توابع (Functions) معرفی انواع داده (Data Type) و عملگرها در جاوا اسکریپت تعریف انواع توابع خصوصیات String (Length, Constructor, Prototype) متدهای کار رشته انواع شرط ها و حلقه ها کار با شی Date و Math کار با Storage کار با آرایه ها و متدهای مربوط به آن معرفی و کار با AJAX و JSON آشنایی و کار با Callback برنامه نویسی Sync و Async تکنیک ها و ویژگی های ECMAScript آشنایی با ECMAScript متغیرها - Variables عملگرها - Operators شرط ها - Decision Making حلقه های تکرار - Loops انواع توابع - Functions رخدادها - Events کار با Page Redirect کار با Void Keyword Objects Number Boolean Strings متدهای جدید کار با رشته ها - New String Methods آرایه ها - Arrays RegExp Collections Classes Promises Modules Error Handling Validations Animation Multimedia Debugging مروری بر شی گرایی الگوهای مختلف برنامه نویسی در طول زمان (Programming Paradigms) اصطلاحات و مبانی برنامه نویسی شی گرا (OOP Basic Concepts) اصول برنامه نویسی شی گرا (OOP Principles) Abstraction Polymorphism Inheritance Encapsulation مدل سازی و طراحی شی گرا (Object Oriented Design and Modeling) اصول طراحی شی گرا (S.O.L.I.D Principles) Single Responsibility Principle (SRP) Open-Closed Principle (OCP) Liskov Substitution Principle (LSP) Interface Segregation Principle (ISP) Dependency Inversion Principle (DIP) ویژگی های React نصب react با استفاده از npm ایجاد اولین پروژه اجرای پروژه در مرورگر نمایش و بررسی directory پروژه و معرفی بخش های آن معرفی و کار با JSX Nested Elements Attributes JavaScript Expressions Styling Comments Naming Convention بررسی مثال هایی از JSX معرفی Task Runner ها متغیرها در JSX استفاده از توابع، شرطها و آبجکتها در JSX معرفی و کار با Component چرخه زندگی کامپوننت ها درخواست های Ajax کار با State ها در React معرفی و کار با Props Validating Props معرفی و کار با Component API تعریف Component Life Cycle کار با Form ها در React کار با Event ها در React معرفی و کار با Refs معرفی و کار با Keys مسیریابی و کار با URL ها Install a React Router React Router Dom Add a Router معرفی و کار با Flux Install Redux مدیریت وضعیت با Redux