ในบทนี้เราจะมาสร้างแอพเรา โดยใช้ React เป็น Front-End
แรกสุด เราติดตั้ง React และ ReactDOM ก่อน
- สั่ง
yarn add react react-dom
package ทั้งสองอันนี้จะไปอยู่ใน "dependencies"
ไม่ใช่ "devDependencies"
เพราะทั้งสองอันนี้ไม่ใช่ build tools แต่เป็น client bundle ที่เราต้องใช้ตอน production
แก้ชื่อไฟล์ src/client/app.js
เป็น src/client/app.jsx
และเขียนโค้ด React และ JSX ดังต่อไปนี้ลงไป
import 'babel-polyfill';
import React, { PropTypes } from 'react';
import ReactDOM from 'react-dom';
import Dog from '../shared/dog';
const dogBark = new Dog('Browser Toby').bark();
const App = props => (
<div>
The dog says: {props.message}
</div>
);
App.propTypes = {
message: PropTypes.string.isRequired,
};
ReactDOM.render(<App message={dogBark} />, document.querySelector('.app'));
หมายเหตุ: ถ้าคุณไม่คุ้นเคยกับ React หรือ PropTypes ให้ไปเรียนรู้เบสิคของ React มาก่อน แล้วกลับมายัง Tutorial นี้ต่อ เพราะในบทถัดๆ ไปจะมีคอนเซปต่างๆ ของ React ที่จะถูกใช้อย่างมาก ทำให้เป็นเรื่องดีหากคุณมีความเข้าใจเกี่ยวกับ React ระดับหนึ่งก่อนที่จะไปต่อจากนี้
ใน Gulpfile เปลี่ยนค่าของ clientEntryPoint
ให้เป็นนามสกุล .jsx
ด้วย
clientEntryPoint: 'src/client/app.jsx',
เนื่องจากเรามีการใช้ syntax ของ JSX เราต้องบอกให้ Babel รู้ว่าเราต้องแปลง JSX ด้วยนะ โดยการที่ติดตั้ง preset React Babel ที่จะสอนให้ Babel รู้จักวิธีการ process syntax ของ JSX โดยให้สั่ง yarn add --dev babel-preset-react
และเปลี่ยน babel
ที่อยู่ใน package.json
ให้เป็นแบบนี้
"babel": {
"presets": [
"latest",
"react"
]
},
ตอนนี้ หลังจากสั่ง yarn start
เมื่อเราเปิด index.html
เราจะเห็น "The dog says: Wah wah, I am Browser Toby" ที่ถูก render ด้วย React
บทถัดไป บทที่ 9 - Redux