React - 用 Hello 認識框架組件
React - 用 Hello 認識框架組件
前言
透過 Hello World 來認識我們的組件與 CSS 模組化,以及使用 React 好用的 VS Code 套件。
使用 create-react-app 起手式
創建 Hello.js 組件
在
src
資料夾內新增Hello.js
,並使用類式組件1
2
3
4
5
6
7
8
9
10
11
12
13
14import React from 'react';
import './Hello.css';
class Hello extends React.Component {
render() {
return (
<div>
<h2>Hello world</h2>
</div>
)
}
}
// 重點:預設輸出 Hello 組件
export default Hello;把
index.js
入口文件,引入Hello.js
組件1
2
3
4
5
6
7
8
9
10
11
12import React from 'react';
import ReactDOM from 'react-dom';
// 引入 Hello 組件
import Hello from './Hello';
// 記得 render 內要加入 Hello 組件
ReactDOM.render(
<React.StrictMode>
<Hello />
</React.StrictMode>,
document.getElementById('root')
);簡寫框架中類式組件
1
2
3
4
5
6
7
8
9
10
11
12
13
14// 利用 React 框架的分別輸出接收 Component
import React,{Component} from 'react';
import './Hello.css';
// 重點:創建同時回傳 Hello 組件
export default class Hello extends Component {
render() {
return (
<div>
<h2>Hello world</h2>
</div>
)
}
}
幫組件分類
在
src
資料夾中新增components
資料夾,專門放組件在
components
資料夾中新增Hello
資料夾,專門放Hello
組件的東西這時
index.js
引入的Hello.js
位置就要修改1
import Hello from './component/Hello/Hello';
把剛剛的
Hello.js
改名成index.jsx
會用
jsx
是用來區分組建和一般 JS 功能用的這時
index.js
引入的Hello組件
就可以寫到資料夾,它會自動找index
文件1
import Hello from './component/Hello';
樣式模組化
有時候組件一多,樣式名稱不小心重疊,又因為後面的樣式會覆蓋前面的樣式,導致樣式跑掉。
如下圖第一個Hello world
原本是設定紅色背景,被第二個樣式蓋過去
這時候有很多解決方法
如果是使用類似
SASS
技術,可以為每個組件樣式最外面多套一個 class把 SCSS 檔外層多套一個 class
1
2
3
4
5
6// 多套一層 hello
.hello {
.title {
...
}
}
幫 CSS 樣式模塊化
把檔名中間多加
.module
變成Hello.module.css
把
Hello 組件
中的index.jdx
1
2
3
4
5
6
7
8
9
10
11
12
13
14import React,{Component} from 'react';
// 模塊化的引入法
import hello from './Hello.module.css';
// className 內使用 {} 包住引入
export default class Hello extends Component {
render() {
return (
<div>
<h2 className={ hello.title }>Hello world</h2>
</div>
)
}
}
推薦使用 VScode 套件
ES7 React/Redux/GraphQL/React-Native snippets
這個套件有提供程式模板
- ES6~ES7 emmet 語法
- React emmet 語法
- Redux emmet 語法