SlideShare a Scribd company logo
1 of 28
Download to read offline
Hello React
從 0 ~ 1 建立第一個 app
Jacky.H.Hung
2016.04.02
hungjie19@gmail.com
Outline
• What is React ?
• React 起手式
• Sample demo
– Hello word
– Try 分割元件 (card 好友請求)
What is React ?
誰 在 用 ?不
出處 https://speakerdeck.com/coodoo/flux-in-action-shi-zhan-jing-yan-fen-xiang 引用簡報內容
React 三大主軸
Data
Flow
Just the
UI
Virtual
DOM
Just the UI
• 元件化架構
• MVC / MVVM 裡面的 View
– 但是更強大
• 封裝性
HTML
JS CSS
Virtual DOM
• $(“app”) 成本太高
• 虛擬文件模型
• 資料改變,畫面一律重繪
– 畫面保證正確。
• JSX 語法
React
Virtual DOM
DOM
畫面改變
Develops
Virtual DOM
(記憶體)
JQuery
把 div 文字變紅色
JSXHTML in JavaScript
HTML in JavaScript
JQ / Angular
HTML in JavaScript
React
Data Flow
• 單向資料流,由 Store 開始
• 所有的資料只存在 Store 內
– Store = Model
• Flux
– 開發架構 ( Pattern / 心法 )
• Flux 實作:
– Flux ( Facebook )
– Redux ( 作者已被 Facebook 納入公司 )
MVC
vs
Flux
Single source of truth
唯一的真相
小結
• React 負責 View
• Flux 負責 Model
• 單向資料流
• 一律重繪
Sample demo
React 起手式 .1
• 建立元件:
– React.createClass( Object );
• 將元件繪製到 HTML DOM:
– ReactDOM.render( component, getID );
• 從 attribute 上面拿資料
– props
• 元件的狀態
– state
React 起手式 1-1
React.createClass
建立 React 元件:
React.createClass( object );
React 起手式 1-2
React.createClass
元件繪製區
React 起手式 .1-3
React.createClass
JSX syntax
props 從 attributes 取得資料
{ JavaScript 表達式 }
React 起手式 .1-4
ReactDOM.render
component, getElement
元件畫好了怎麼放到 DOM 上面?
React 起手式 .1-5
完成第一個 React
AngularJS 比較
JSX 注意事項
HTML JSX
<br> <br />
class className
style=“color: red” (string) style={{color: “red”}} (object)
for htmlFor
onclick onClick
React 起手式 .2
Try 元件分割
CardRequest
CardContainer
CardOption
CardName
CardImage
END
reference
• https://facebook.github.io/react
• https://facebook.github.io/flux
• https://github.com/jarsbe/react-simple
• https://speakerdeck.com/coodoo/flux-in-action-shi-zhan-jing-yan-fen-xiang
• http://blog.littlelin.info/posts/2015/06/14/note-establishing-flux-app-from-scratch-1
• https://github.com/gaearon/react-makes-you-sad
• https://github.com/jarsbe/react-simple
•

More Related Content

What's hot

MVC MVVM MVVMC
MVC MVVM MVVMCMVC MVVM MVVMC
MVC MVVM MVVMCNg Hui Qin
 
Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器
Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器
Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器iflytek
 
Blazor Component 開發實戰
Blazor Component 開發實戰Blazor Component 開發實戰
Blazor Component 開發實戰Gelis Wu
 
MobileWebAppFramework_V5_design
MobileWebAppFramework_V5_designMobileWebAppFramework_V5_design
MobileWebAppFramework_V5_designJackson Tian
 
Http callback bridge
Http callback bridgeHttp callback bridge
Http callback bridgePhoenix Su
 
Javascript template & react js 初探
Javascript template & react js 初探Javascript template & react js 初探
Javascript template & react js 初探wantingj
 
Koubei banquet 27
Koubei banquet 27Koubei banquet 27
Koubei banquet 27Koubei UED
 
Silverlight 2.0 完全新手學堂,基礎入門 10 大招
Silverlight 2.0 完全新手學堂,基礎入門 10 大招Silverlight 2.0 完全新手學堂,基礎入門 10 大招
Silverlight 2.0 完全新手學堂,基礎入門 10 大招Chui-Wen Chiu
 

What's hot (9)

MVC MVVM MVVMC
MVC MVVM MVVMCMVC MVVM MVVMC
MVC MVVM MVVMC
 
Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器
Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器
Web端交互逻辑抽象的实践—运营h5页面和逻辑自动生成利器
 
Blazor Component 開發實戰
Blazor Component 開發實戰Blazor Component 開發實戰
Blazor Component 開發實戰
 
MobileWebAppFramework_V5_design
MobileWebAppFramework_V5_designMobileWebAppFramework_V5_design
MobileWebAppFramework_V5_design
 
Http callback bridge
Http callback bridgeHttp callback bridge
Http callback bridge
 
Javascript template & react js 初探
Javascript template & react js 初探Javascript template & react js 初探
Javascript template & react js 初探
 
Web Development Roadmap
Web Development RoadmapWeb Development Roadmap
Web Development Roadmap
 
Koubei banquet 27
Koubei banquet 27Koubei banquet 27
Koubei banquet 27
 
Silverlight 2.0 完全新手學堂,基礎入門 10 大招
Silverlight 2.0 完全新手學堂,基礎入門 10 大招Silverlight 2.0 完全新手學堂,基礎入門 10 大招
Silverlight 2.0 完全新手學堂,基礎入門 10 大招
 

Similar to Hello reactJS 0~1 Bulid my first web app

JSDC 2015 React-Native 實戰
JSDC 2015 React-Native 實戰JSDC 2015 React-Native 實戰
JSDC 2015 React-Native 實戰Sam Lee
 
React基礎教學
React基礎教學React基礎教學
React基礎教學昇倫 蔡
 
React js入門
React js入門React js入門
React js入門昶宇 賴
 
赶集团购开发总结4
赶集团购开发总结4赶集团购开发总结4
赶集团购开发总结4yangdj
 
【项目分享】赶集移动Web App开发总结
【项目分享】赶集移动Web App开发总结 【项目分享】赶集移动Web App开发总结
【项目分享】赶集移动Web App开发总结 yangdj
 
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVCjeffz
 
D2-ETao-show
D2-ETao-showD2-ETao-show
D2-ETao-showleneli
 
W3CTech美团react专场-Thinking in React
W3CTech美团react专场-Thinking in ReactW3CTech美团react专场-Thinking in React
W3CTech美团react专场-Thinking in React美团点评技术团队
 
移动Web开发框架jqm探讨
移动Web开发框架jqm探讨移动Web开发框架jqm探讨
移动Web开发框架jqm探讨newker
 
实时Web的前世今生未来
实时Web的前世今生未来实时Web的前世今生未来
实时Web的前世今生未来RolfZhang
 
一步一步开发Html5 mobile apps
一步一步开发Html5 mobile apps一步一步开发Html5 mobile apps
一步一步开发Html5 mobile appsAdam Lu
 
twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC
 
react native by letv
react native by letvreact native by letv
react native by letvfeeloc
 
Angular js twmvc#17
Angular js twmvc#17Angular js twmvc#17
Angular js twmvc#17twMVC
 
Jswebapps
JswebappsJswebapps
Jswebappsjay li
 
Study4 love.2016.2.20.ionic
Study4 love.2016.2.20.ionicStudy4 love.2016.2.20.ionic
Study4 love.2016.2.20.ionicKyle Shen
 
Javascript primer plus
Javascript primer plusJavascript primer plus
Javascript primer plusDongxu Yao
 

Similar to Hello reactJS 0~1 Bulid my first web app (20)

JSDC 2015 React-Native 實戰
JSDC 2015 React-Native 實戰JSDC 2015 React-Native 實戰
JSDC 2015 React-Native 實戰
 
React基礎教學
React基礎教學React基礎教學
React基礎教學
 
React js入門
React js入門React js入門
React js入門
 
赶集团购开发总结4
赶集团购开发总结4赶集团购开发总结4
赶集团购开发总结4
 
【项目分享】赶集移动Web App开发总结
【项目分享】赶集移动Web App开发总结 【项目分享】赶集移动Web App开发总结
【项目分享】赶集移动Web App开发总结
 
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVC
 
D2-ETao-show
D2-ETao-showD2-ETao-show
D2-ETao-show
 
W3CTech美团react专场-Thinking in React
W3CTech美团react专场-Thinking in ReactW3CTech美团react专场-Thinking in React
W3CTech美团react专场-Thinking in React
 
移动Web开发框架jqm探讨
移动Web开发框架jqm探讨移动Web开发框架jqm探讨
移动Web开发框架jqm探讨
 
React js
React jsReact js
React js
 
Html5
Html5Html5
Html5
 
实时Web的前世今生未来
实时Web的前世今生未来实时Web的前世今生未来
实时Web的前世今生未来
 
一步一步开发Html5 mobile apps
一步一步开发Html5 mobile apps一步一步开发Html5 mobile apps
一步一步开发Html5 mobile apps
 
twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢
 
react native by letv
react native by letvreact native by letv
react native by letv
 
行動技術開發概論
行動技術開發概論行動技術開發概論
行動技術開發概論
 
Angular js twmvc#17
Angular js twmvc#17Angular js twmvc#17
Angular js twmvc#17
 
Jswebapps
JswebappsJswebapps
Jswebapps
 
Study4 love.2016.2.20.ionic
Study4 love.2016.2.20.ionicStudy4 love.2016.2.20.ionic
Study4 love.2016.2.20.ionic
 
Javascript primer plus
Javascript primer plusJavascript primer plus
Javascript primer plus
 

Hello reactJS 0~1 Bulid my first web app