Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
[ReactJS How to Workshop] Day 01
Search
Khánh Trần
September 24, 2016
Programming
56
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[ReactJS How to Workshop] Day 01
Slide for my workshop about ReactJS at geekup.vn
Khánh Trần
September 24, 2016
More Decks by Khánh Trần
See All by Khánh Trần
Docker-Compose workshop
rualatngua
2
230
ReactJS - The Container component pattern
rualatngua
0
64
Seneca workshop
rualatngua
0
140
Other Decks in Programming
See All in Programming
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
110
JRuby: Past, Present, and Future
headius
0
170
新卒PdEのリアル
ryu1013
1
510
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
190
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
140
Verilogで学ぶCPU自作入門.pdf
uyuki234
1
180
FreeBSDでZabbixを動かす
kenkino
0
310
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
150
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.9k
スマート反転とウェブアクセシビリティ
camiha
0
210
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
130
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
280
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
RailsConf 2023
tenderlove
30
1.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Mobile First: as difficult as doing things right
swwweet
225
10k
It's Worth the Effort
3n
188
29k
Fireside Chat
paigeccino
43
4k
The agentic SEO stack - context over prompts
schlessera
0
940
Into the Great Unknown - MozCon
thekraken
41
2.7k
What's in a price? How to price your products and services
michaelherold
247
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Transcript
ReactJS How to
Today topics • Set-up and Run 1st demo • ES6
Crash course • Project structure & Workflow • Components & JSX Syntax • And Components ... and components
Set-up and Run 1st demo npm install -g create-react-app create-react-app
my-app cd my-app/ npm start Open Demo
ES6 Crash course An JavaScript file is a module... //
file foo.js const COLOR_THEME = 'Ocean'; function sayHello(name) { console.log(`Hello ${name}`); } class Foo { sum(a, b) { return a + b; } } export default Foo; export {COLOR_THEME, sayHello};
ES6 Crash course Export and export default export default Foo;
export {COLOR_THEME, sayHello};
ES6 Crash course Import from a module import Foo, {sayHello,
COLOR_THEME} from './foo'; //don't need .js for import js // or only default class Foo import Foo from './foo'; // or rename to new name import Foo as Bar from './foo'; // or only sayHello function import {sayHello}
ES6 Crash course Arrow Function function sum(a, b) { return
a + b; } const sum = (a, b) => a + b; const arr = [4, 5, 8, 2, 1, 3, 9, 7]; // filter odd number only console.log( arr.filter(number => number % 2 === 0) );
Project Structure & Workflow
Its dead simple to add new component React Color npm
install react-color --save import React from 'react'; import { SketchPicker } from 'react-color'; class Component extends React.Component { render() { return <SketchPicker />; } }
index.js import React from 'react'; import ReactDOM from 'react-dom'; import
App from './App'; ReactDOM.render( <App />, document.getElementById('root') );
packages.json 1. dependencies 2. devDependencies 3. scripts npm install --save
react-color npm install --save-dev chancejs
Render component import React, { Component } from 'react'; import
logo from './logo.svg'; import './App.css'; class App extends Component { render() { return ( <div className="App"> <div className="App-header"> <img src={logo} className="App-logo" alt="logo" /> <h2>Welcome to React</h2> </div> <p className="App-intro"> To get started, edit <code>src/App.js</code> and save to reload. </p> </div> ); } } export default App;
Development Tools 1. Webpack • Handling all assets • Leverage
Import css/sass/image/svg • Post process 2. Babel: translsate ES6 to ES5 3. Npm: npm start and npm build
Let make a Button From Class component... import React from
'react'; class Button extends React.Component { render () { const {text, onClick} = this.props; return ( <button onClick={onClick}>{text}</button> ); } } export default Button;
Let make a Button ... to Function component import React
from 'react'; const Button = ({ text, onClick }) => { <button onClick={onClick}>{text}</button> } export default Button;
Learning Resources • How to develop apps bootstrapped with Create
React App. • Grommet getting start • React JS and why it's awesome • Ecosystem
What next? • Lifecycle methods • Props and State •
Routing • Manage Application State with Mobx • Handle form • Testing with Jest • Styling & Responsive