SlideShare a Scribd company logo
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
React in the RIGHT way
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Why React ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Solve one problem
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Build large app with data
that change over time
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
How to start ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Let’s start by yourself
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Learn JS, JSX
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Virtual DOM
Component-driven development
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Virtual DOM
React
Component
Virtual
DOM
Computed
batch DOM
Real
DOM
Auto update 60 fps
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
JSX (JavaScript eXpression)
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Rendering
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Components
Profile
Projects
Project 1
Project 2
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Components
App component
Profile Projects
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Components
App component
Profile Projects
Pass data ?
Pass data ?Pass data ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Components
App component
Profile Projects
Props
PropsProps
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Profile component
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Project Item component
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Projects component
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
App component
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Learn ECMAScript 6
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Dependency manager
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Welcome to React world
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://github.com/facebookincubator/create-react-app
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
$npm install -g create-react-app
$create-react-app my-app
$cd my-app/
$npm start
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://github.com/zeit/next.js/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Learn Routing
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Learn Routing
React Router
https://github.com/rackt/react-router
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Need Routing ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Learn Flux
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Learn Flux
Redux
https://github.com/reactjs/redux
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Need Redux ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Learn Server rendering
https://github.com/reactjs/redux/blob/master/docs/recipes/ServerRendering.md
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Learn Server rendering
Universal
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Learn Server rendering
Universal
Isomorphic
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Need Server rendering ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Slow rendering ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Improve SEO ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
More …
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
React Relay GraphQLRedux
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Data framework
Relay
API gateway
GraphQL
Flux
Event framework
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Finally …
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
How to testing ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Static code analysis
Istanbul
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Static code analysis
Test framework
Enzyme
Istanbul
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Static code analysis
System test
Enzyme
Test framework
Istanbul
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Code without tests
is broken by design
— Jacob Kaplan-Moss —
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Finally again !!!
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
React Ecosystem
React Web (Virtual DOM) React Native
React (JSX, Components, JS Styles)
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
React Ecosystem
React Web (Virtual DOM) React Native
React (JSX, Components, JS Styles)
Flux/Redux Relay
GraphQL
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Resources
https://github.com/petehunt/react-howto
https://facebook.github.io/react/

More Related Content

More from Somkiat Puisungnoen

Next of Java 2022
Next of Java 2022Next of Java 2022
Next of Java 2022
Somkiat Puisungnoen
 
Sck spring-reactive
Sck spring-reactiveSck spring-reactive
Sck spring-reactive
Somkiat Puisungnoen
 
Part 2 :: Spring Boot testing
Part 2 :: Spring Boot testingPart 2 :: Spring Boot testing
Part 2 :: Spring Boot testing
Somkiat Puisungnoen
 
vTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring BootvTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring Boot
Somkiat Puisungnoen
 
Lesson learned from React native and Flutter
Lesson learned from React native and FlutterLesson learned from React native and Flutter
Lesson learned from React native and Flutter
Somkiat Puisungnoen
 
Angular :: basic tuning performance
Angular :: basic tuning performanceAngular :: basic tuning performance
Angular :: basic tuning performance
Somkiat Puisungnoen
 
Shared code between projects
Shared code between projectsShared code between projects
Shared code between projects
Somkiat Puisungnoen
 
Distributed Tracing
Distributed Tracing Distributed Tracing
Distributed Tracing
Somkiat Puisungnoen
 
Manage data of service
Manage data of serviceManage data of service
Manage data of service
Somkiat Puisungnoen
 
RobotFramework Meetup at Thailand #2
RobotFramework Meetup at Thailand #2RobotFramework Meetup at Thailand #2
RobotFramework Meetup at Thailand #2
Somkiat Puisungnoen
 
Visual testing
Visual testingVisual testing
Visual testing
Somkiat Puisungnoen
 
Cloud Native App
Cloud Native AppCloud Native App
Cloud Native App
Somkiat Puisungnoen
 
Wordpress for Newbie
Wordpress for NewbieWordpress for Newbie
Wordpress for Newbie
Somkiat Puisungnoen
 
Sck Agile in Real World
Sck Agile in Real WorldSck Agile in Real World
Sck Agile in Real World
Somkiat Puisungnoen
 
Clean you code
Clean you codeClean you code
Clean you code
Somkiat Puisungnoen
 
SCK Firestore at CNX
SCK Firestore at CNXSCK Firestore at CNX
SCK Firestore at CNX
Somkiat Puisungnoen
 
Meetup :: Update Elastic Stack 5.0
Meetup :: Update Elastic Stack 5.0Meetup :: Update Elastic Stack 5.0
Meetup :: Update Elastic Stack 5.0
Somkiat Puisungnoen
 
Git as NoSQL
Git as NoSQLGit as NoSQL
Git as NoSQL
Somkiat Puisungnoen
 
DevOps 101
DevOps 101DevOps 101

More from Somkiat Puisungnoen (20)

Next of Java 2022
Next of Java 2022Next of Java 2022
Next of Java 2022
 
Sck spring-reactive
Sck spring-reactiveSck spring-reactive
Sck spring-reactive
 
Part 2 :: Spring Boot testing
Part 2 :: Spring Boot testingPart 2 :: Spring Boot testing
Part 2 :: Spring Boot testing
 
vTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring BootvTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring Boot
 
Lesson learned from React native and Flutter
Lesson learned from React native and FlutterLesson learned from React native and Flutter
Lesson learned from React native and Flutter
 
devops
devops devops
devops
 
Angular :: basic tuning performance
Angular :: basic tuning performanceAngular :: basic tuning performance
Angular :: basic tuning performance
 
Shared code between projects
Shared code between projectsShared code between projects
Shared code between projects
 
Distributed Tracing
Distributed Tracing Distributed Tracing
Distributed Tracing
 
Manage data of service
Manage data of serviceManage data of service
Manage data of service
 
RobotFramework Meetup at Thailand #2
RobotFramework Meetup at Thailand #2RobotFramework Meetup at Thailand #2
RobotFramework Meetup at Thailand #2
 
Visual testing
Visual testingVisual testing
Visual testing
 
Cloud Native App
Cloud Native AppCloud Native App
Cloud Native App
 
Wordpress for Newbie
Wordpress for NewbieWordpress for Newbie
Wordpress for Newbie
 
Sck Agile in Real World
Sck Agile in Real WorldSck Agile in Real World
Sck Agile in Real World
 
Clean you code
Clean you codeClean you code
Clean you code
 
SCK Firestore at CNX
SCK Firestore at CNXSCK Firestore at CNX
SCK Firestore at CNX
 
Meetup :: Update Elastic Stack 5.0
Meetup :: Update Elastic Stack 5.0Meetup :: Update Elastic Stack 5.0
Meetup :: Update Elastic Stack 5.0
 
Git as NoSQL
Git as NoSQLGit as NoSQL
Git as NoSQL
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 

React in the right way