[React.js] Build An React App part.1- time-series chart and Node.js

Introduction
我的需求要的是純粹的頁面,而資料將由另一個web service來提供, 效能考量下,想用Virtual DOM的方式來做,因此一開始便考慮選擇Vue.js或是React.js。
這兩個框架都是使用Virtual DOM,也都是component-based的資料結構,無論是學習哪個都是很值得。以缺點來看,前者目前的market share仍比不上React.js或是AngularJS,而且 scalability較差; React.js的學習曲線則較陡。最後考慮市占率,選擇React.js來用。
然後需要先在環境中安裝好VS code以及Node.js。網路上其實已經有很多教學文章了,這篇是整理合乎我使用的工具及流程。
npm, Babel, and Webpack
先從環境開始。

npm is the package manager for JavaScript and the world’s largest software registry. Discover packages of reusable code — and assemble them in powerful new ways.
打開command line,輸入以下指令,會看到資料夾中產生package.json。package.json是用來紀錄專案所依賴的套件,npm會依據這個檔案的內容安裝對應的套件:
mkdir demo
cd demo
npm init -f安裝開發環境所需要的套件。npm install會依據package.json的內容安裝套件,也可以指定package名稱,加上 — save-dev就可以將套件寫入package.json的devDependencies中:
npm install --save-dev @babel/core @babel/plugin-proposal-class-properties @babel/plugin-proposal-decorators @babel/plugin-syntax-dynamic-import @babel/preset-env @babel/preset-react @babel/polyfill "babel-loader@^8.0.0-beta" html-webpack-plugin webpack webpack-cli webpack-dev-server安裝正式環境所需要的套件。 — save就可以將套件寫入package.json的dependencies中:
npm install --save react react-dom react-loadable react-router-dom
Babel
Babel可以讓將JSX compile為JS,並且將ES6轉譯為ES5,可以到官網的try it out的左邊編寫ES6,右邊則會產生ES5。安裝正式環境所需要的套件。
Babel是讀取.babelrc以知道要執行哪些plugin,為此需在資料夾中新增.babelrc檔案並填入剛才我們用npm下載的套件:











