
- ReactJS 教程
- ReactJS - 首頁
- ReactJS - 簡介
- ReactJS - 路線圖
- ReactJS - 安裝
- ReactJS - 功能
- ReactJS - 優點與缺點
- ReactJS - 架構
- ReactJS - 建立 React 應用
- ReactJS - JSX
- ReactJS - 元件
- ReactJS - 巢狀元件
- ReactJS - 使用新建立的元件
- ReactJS - 元件集合
- ReactJS - 樣式
- ReactJS - 屬性 (props)
- ReactJS - 使用屬性建立元件
- ReactJS - props 驗證
- ReactJS - 建構函式
- ReactJS - 元件生命週期
- ReactJS - 事件管理
- ReactJS - 建立一個事件感知元件
- ReactJS - 在 Expense Manager 應用中引入事件
- ReactJS - 狀態管理
- ReactJS - 狀態管理 API
- ReactJS - 無狀態元件
- ReactJS - 使用 React Hooks 進行狀態管理
- ReactJS - 使用 React Hooks 進行元件生命週期管理
- ReactJS - 佈局元件
- ReactJS - 分頁
- ReactJS - Material UI
- ReactJS - Http 客戶端程式設計
- ReactJS - 表單程式設計
- ReactJS - 受控元件
- ReactJS - 非受控元件
- ReactJS - Formik
- ReactJS - 條件渲染
- ReactJS - 列表
- ReactJS - Keys
- ReactJS - 路由
- ReactJS - Redux
- ReactJS - 動畫
- ReactJS - Bootstrap
- ReactJS - Map
- ReactJS - 表格
- ReactJS - 使用 Flux 管理狀態
- ReactJS - 測試
- ReactJS - CLI 命令
- ReactJS - 構建和部署
- ReactJS - 示例
- Hooks
- ReactJS - Hooks 簡介
- ReactJS - 使用 useState
- ReactJS - 使用 useEffect
- ReactJS - 使用 useContext
- ReactJS - 使用 useRef
- ReactJS - 使用 useReducer
- ReactJS - 使用 useCallback
- ReactJS - 使用 useMemo
- ReactJS - 自定義 Hooks
- ReactJS 高階
- ReactJS - 可訪問性
- ReactJS - 程式碼分割
- ReactJS - Context
- ReactJS - 錯誤邊界
- ReactJS - 轉發 Refs
- ReactJS - Fragments
- ReactJS - 高階元件
- ReactJS - 與其他庫整合
- ReactJS - 效能最佳化
- ReactJS - Profiler API
- ReactJS - Portals
- ReactJS - 無 ES6 ECMAScript 的 React
- ReactJS - 無 JSX 的 React
- ReactJS - 調和
- ReactJS - Refs 和 DOM
- ReactJS - Render Props
- ReactJS - 靜態型別檢查
- ReactJS - Strict Mode
- ReactJS - Web Components
- 其他概念
- ReactJS - 日期選擇器
- ReactJS - Helmet
- ReactJS - 內聯樣式
- ReactJS - PropTypes
- ReactJS - BrowserRouter
- ReactJS - DOM
- ReactJS - 輪播圖
- ReactJS - 圖示
- ReactJS - 表單元件
- ReactJS - 參考 API
- ReactJS 有用資源
- ReactJS - 快速指南
- ReactJS - 有用資源
- ReactJS - 討論
ReactJS - 樣式
一般來說,React 允許透過 className 屬性使用 CSS 類來為元件設定樣式。由於 React JSX 支援 JavaScript 表示式,因此可以使用許多常見的 CSS 方法。一些頂級選項如下:
CSS 樣式表 - 常規 CSS 樣式以及 className
內聯樣式 - 作為 JavaScript 物件的 CSS 樣式以及 camelCase 屬性。
CSS Modules - 區域性作用域的 CSS 樣式。
Styled Components - 元件級別的樣式。
Sass 樣式表 - 透過在構建時將樣式轉換為常規 css 來支援基於 Sass 的 CSS 樣式。
後處理樣式表 - 透過在構建時將樣式轉換為常規 css 來支援後處理樣式。
讓我們在本節學習如何應用三種重要的樣式方法來設定元件的樣式。
CSS 樣式表
內聯樣式
CSS Modules
CSS 樣式表
CSS 樣式表 是一種常用、常見且經過時間考驗的方法。只需為元件建立一個 CSS 樣式表,並輸入該元件的所有樣式。然後,在元件中使用 className 來引用樣式。
讓我們為 ExpenseEntryItem 元件設定樣式。
在您喜歡的編輯器中開啟 expense-manager 應用程式。
接下來,開啟 ExpenseEntryItem.css 檔案並新增一些樣式。
div.itemStyle { color: brown; font-size: 14px; }
接下來,開啟 ExpenseEntryItem.js 並將 className 新增到主容器。
import React from 'react'; import './ExpenseEntryItem.css'; class ExpenseEntryItem extends React.Component { render() { return ( <div className="itemStyle"> <div><b>Item:</b> <em>Mango Juice</em></div> <div><b>Amount:</b> <em>30.00</em></div> <div><b>Spend Date:</b> <em>2020-10-10</em></div> <div><b>Category:</b> <em>Food</em></div> </div> ); } } export default ExpenseEntryItem;
接下來,使用 npm 命令啟動應用程式。
npm start
接下來,開啟瀏覽器並在位址列中輸入 https://:3000 並按回車鍵。

CSS 樣式表易於理解和使用。但是,當專案規模增大時,CSS 樣式也會增多,最終會在類名中造成許多衝突。此外,直接載入 CSS 檔案僅在 Webpack 捆綁器中受支援,在其他工具中可能不受支援。
內聯樣式
內聯樣式 是設定 React 元件樣式最安全的方法之一。它使用基於 DOM 的 css 屬性將所有樣式宣告為 JavaScript 物件,並透過 style 屬性將其設定為元件。
讓我們在我們的元件中新增內聯樣式。
在您喜歡的編輯器中開啟 expense-manager 應用程式,並修改 src 資料夾中的 ExpenseEntryItem.js 檔案。宣告一個物件型別的變數並設定樣式。
itemStyle = { color: 'brown', fontSize: '14px' }
這裡,fontSize 代表 css 屬性 font-size。所有 css 屬性都可以透過以 camelCase 格式表示來使用。
接下來,使用花括號 {} 在元件中設定 itemStyle 樣式:
render() { return ( <div style={ this.itemStyle }> <div><b>Item:</b> <em>Mango Juice</em></div> <div><b>Amount:</b> <em>30.00</em></div> <div><b>Spend Date:</b> <em>2020-10-10</em></div> <div><b>Category:</b> <em>Food</em></div> </div> ); }
此外,樣式可以直接在元件內部設定:
render() { return ( <div style={ { color: 'brown', fontSize: '14px' } }> <div><b>Item:</b> <em>Mango Juice</em></div> <div><b>Amount:</b> <em>30.00</em></div> <div><b>Spend Date:</b> <em>2020-10-10</em></div> <div><b>Category:</b> <em>Food</em></div> </div> ); }
現在,我們已成功在我們的應用程式中使用了內聯樣式。
接下來,使用 npm 命令啟動應用程式。
npm start
接下來,開啟瀏覽器並在位址列中輸入 https://:3000 並按回車鍵。

CSS Modules
CSS Modules 提供了最安全也是最簡單的定義樣式的方法。它使用帶有常規語法的常規 css 樣式表。在匯入樣式時,CSS Modules 會將所有樣式轉換為區域性作用域樣式,這樣就不會發生名稱衝突。讓我們更改我們的元件以使用 CSS Modules
在您喜歡的編輯器中開啟 expense-manager 應用程式。
接下來,在 src/components 資料夾下建立一個新的樣式表 ExpenseEntryItem.module.css 檔案,並編寫常規 css 樣式。
div.itemStyle { color: 'brown'; font-size: 14px; }
這裡,檔案命名約定非常重要。React 工具鏈將透過 CSS Module 預處理以 .module.css 結尾的 css 檔案。否則,它將被視為常規樣式表。
接下來,開啟 src/component 資料夾中的 ExpenseEntryItem.js 檔案並匯入樣式。
import styles from './ExpenseEntryItem.module.css'
接下來,在元件中將樣式用作 JavaScript 表示式。
<div className={styles.itemStyle}>
現在,我們已成功在我們的應用程式中使用了 CSS Modules。
最終完整的程式碼是:
import React from 'react'; import './ExpenseEntryItem.css'; import styles from './ExpenseEntryItem.module.css' class ExpenseEntryItem extends React.Component { render() { return ( <div className={styles.itemStyle} > <div><b>Item:</b> <em>Mango Juice</em></div> <div><b>Amount:</b> <em>30.00</em></div> <div><b>Spend Date:</b> <em>2020-10-10</em></div> <div><b>Category:</b> <em>Food</em></div> </div> ); } } export default ExpenseEntryItem;
接下來,使用 npm 命令啟動應用程式。
npm start
接下來,開啟瀏覽器並在位址列中輸入 https://:3000 並按回車鍵。
