Top Banner
Modern Frontend in React.js Abdulsattar
21

Modern frontend in react.js

Jan 26, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Modern frontend in react.js

Modern Frontend in React.jsAbdulsattar

Page 2: Modern frontend in react.js

Install Node.js (https://nodejs.org/). Stable Version is good enough.

git clone https://github.com/abdulsattar/workshop23.git (or) visit https://github.com/abdulsattar/workshop23 and click on Download Zip

npm install

npm start

Open http://localhost:3000/. You should see an alert with “You're all set for the workshop!”

Setup

Page 3: Modern frontend in react.js

AgendaES6

Webpack

React.js

Flux with Redux

React Router

Redux DevTools

Page 4: Modern frontend in react.js

Evolution of the FrontendJavascript developed by Brendan Eich in May, 1995 at Netscape

(within 10 days!)

BOM - Browser Object Model

DOM - Document Object Model

AJAX

jQuery

MV* frameworks

Page 5: Modern frontend in react.js

Javascript VersionsECMAScript 1, 1997: First Edition

ECMAScript 2, 1998: Editorial Changes

ECMAScript 3, 1999: Regular Expressions, Exception Handling etc.

ECMAScript 4, Abandoned.

ECMAScript 5, 2009: Strict Mode, getters and setters, JSON etc.

ECMAScript 5.1, 2011: Editorial Changes

ECMAScript 6, June 2015

ECMAScript 7, WIP: Promises, Async Await etc.

Page 6: Modern frontend in react.js

ES6Arrow functions

Classes

Template Strings

Block scoping

Modules

… and many more!

Page 7: Modern frontend in react.js

Arrows, Template Strings, Block Scopingvar square = x => x * xvar square = function(x) { return x * x };

if(true) { let a = 1; console.log(`a is ${a}`);}console.log(a); // Error: a is not available!

Page 8: Modern frontend in react.js

Classesclass Employee extends Person { constructor(name, city, state, companyName) { super(name, city, state); this.companyName = companyName; }

walk() { super.walk(); console.log("to the office"); }}

Page 9: Modern frontend in react.js

Destructuringlet topic = {name: "React.js", comment: "Modern Frontend"};

let name = topic.name, comment = topic.comment;let {name, comment} = topic;

let languages = ["Odiya", "Telugu", "Hindi", "English"];let [first, second] = languages;let [,,third, fourth] = languages;

Page 10: Modern frontend in react.js

Modules// lib/math.jsexport function sum(x, y) { return x + y;}export var pi = 3.141593;

// app.jsimport math from "lib/math";alert("2π = " + math.sum(math.pi, math.pi));// ^ It's Unicode!

// otherApp.jsimport {sum, pi} from "lib/math";alert("2π = " + sum(pi, pi));

Page 11: Modern frontend in react.js

Babel TranspilerES6+ to ES5 compiler

Webpack

Module Bundler

Page 12: Modern frontend in react.js

ReactJust the V in MVC

Virtual DOM

Components

Page 13: Modern frontend in react.js

Thinking in React

Page 14: Modern frontend in react.js

Thinking in React

Page 15: Modern frontend in react.js

Code

Page 16: Modern frontend in react.js

Flux ArchitectureUnidirectional data flow

Page 17: Modern frontend in react.js

ReduxState Container

Actions & Reducers

Initial State State 2Reducer 1 State 3Reducer 2 ... State 100

Initial State State 2Reducer 1 State 3Reducer 2 ... State 100

Page 18: Modern frontend in react.js

Code

Page 19: Modern frontend in react.js

What to do next?Use Immutable.js

Use reselect

Page 20: Modern frontend in react.js

Referenceshttps://github.com/abdulsattar/workshop23.git

‘complete’ branch

Contact: [email protected]

Page 21: Modern frontend in react.js

Thank You!