- 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 - 地圖
- 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 - 上下文
- ReactJS - 錯誤邊界
- ReactJS - 轉發 Refs
- ReactJS - 片段
- ReactJS - 高階元件
- ReactJS - 與其他庫整合
- ReactJS - 最佳化效能
- ReactJS - Profiler API
- ReactJS - 傳送門
- ReactJS - 無 ES6 ECMAScript 的 React
- ReactJS - 無 JSX 的 React
- ReactJS - 調和
- ReactJS - Refs 和 DOM
- ReactJS - 渲染 Props
- ReactJS - 靜態型別檢查
- ReactJS - 嚴格模式
- ReactJS - Web Components
- 其他概念
- ReactJS - 日期選擇器
- ReactJS - Helmet
- ReactJS - 內聯樣式
- ReactJS - PropTypes
- ReactJS - BrowserRouter
- ReactJS - DOM
- ReactJS - 輪播圖
- ReactJS - 圖示
- ReactJS - 表單元件
- ReactJS - 參考 API
- ReactJS 有用資源
- ReactJS - 快速指南
- ReactJS - 有用資源
- ReactJS - 討論
ReactJS - createElement() 函式
createElement 是一個關鍵的 React 函式,允許開發者在不使用 JSX 的情況下建立元素。它是一個建立使用者介面的絕佳工具,因為它提供了一種系統的方法來設計 React 元素。
元素是 React 中使用者介面的構建塊,表示網頁上的 UI 元件。雖然 JSX 是建立這些元素的常用語法,但 createElement 提供了一種不同的方式。
語法
const element = createElement(type, props, ...children);
引數
type − 這是我們的 React 元件的型別。它可以是像 div 或 span 這樣的標籤名,也可以是 React 元件。
props − 這些是我們元素的屬性。它必須是物件或 null。Ref 和 key 是特殊的,不能作為 element.props.ref 和 element.props.key 使用。
…children − 我們可以有零個或多個子節點。它們可以是任何 React 節點,例如元素、字串、數字、傳送門、空節點和節點陣列。
返回值
該函式返回一個具有以下屬性的 React 元素物件:
type − 我們指定的型別。
props − 我們傳遞的屬性,不包括 ref 和 key。
ref − 我們傳遞的 ref,如果不存在則為 null。
key − 我們傳遞的 key,轉換為字串,如果不存在則為 null。
示例
示例 1
讓我們使用 createElement 建立一個小的 React 應用來顯示一個簡單的專案列表。使用 Create React App 建立一個新的 React 應用。現在我們可以用以下程式碼替換 src/App.js 的內容:
import React, { createElement } from 'react';
import './App.css';
function App() {
// Data for our list
const items = ['Item 1', 'Item 2', 'Item 3', 'Item 4'];
// Create a list using createElement
const list = createElement(
'ul',
null,
items.map((item, index) =>
createElement('li', { key: index }, item)
)
);
// Render the list in the component
return (
<div className="App">
<h1>Simple List App</h1>
{list}
</div>
);
}
export default App;
輸出
執行應用程式後,我們將能夠看到一個簡單的 React 應用,顯示專案列表。
此示例演示瞭如何使用 createElement 動態建立列表。列表中的每個專案都使用 createElement 使用適當的標籤和屬性生成。雖然這是一個簡單的示例,但它展示了我們如何使用 createElement 以程式設計方式構建元素。
示例 2
讓我們使用 createElement 方法建立另一個 React 應用。這次,我們將建立一個簡單的卡片元件。該應用的程式碼如下:
import React, { createElement } from 'react';
import './App.css';
function App() {
// Data for our cards
const cards = [
{ title: 'Card 1', content: 'Content for Card 1' },
{ title: 'Card 2', content: 'Content for Card 2' },
{ title: 'Card 3', content: 'Content for Card 3' },
{ title: 'Card 4', content: 'Content for Card 4' },
];
// Create cards using createElement
const cardElements = cards.map((card, index) =>
createElement('div', { key: index, className: 'card' },
createElement('h2', null, card.title),
createElement('p', null, card.content)
)
);
// Render the cards in the component
return (
<div className="App">
<h1>My Card App using createElement</h1>
{cardElements}
</div>
);
}
export default App;
輸出
在此示例中,我們建立了一個帶有標題和一些內容的基本卡片元件。createElement 函式用於為每個卡片構建 div 元素,以及標題和內容的巢狀 h2 和 p 元素。然後元件渲染 cardElements 陣列。
示例 3
讓我們使用 createElement 方法再建立一個 React 應用。在此應用中,我們將建立一個簡單的導航選單。該應用的程式碼如下:
因此,我們將使用 createElement 方法建立此帶有連結的選單。navItems 陣列包含每個導航項的文字和連結屬性的物件。navLinks 陣列是使用 createElement 建立的,以生成具有適當屬性的元素。
import React, { createElement } from 'react';
import './App.css';
function App() {
// Data for our navigation items
const navItems = [
{ text: 'Home', link: '/' },
{ text: 'About', link: '/about' },
{ text: 'Services', link: '/services' },
{ text: 'Contact', link: '/contact' },
];
// Create navigation links using createElement
const navLinks = navItems.map((item, index) => (
// Adding a space after each navigation item
<>
{createElement('a', { key: index, href: item.link, className: 'nav-link' }, item.text)}
</>
));
// Render the navigation menu in the component
return (
<div className="App">
<h1>Simple Navigation Menu</h1>
<nav>
{createElement('ul', { className: 'nav-list' }, navLinks)}
</nav>
</div>
);
}
export default App;
輸出
因此,這就是我們的導航選單的外觀。有主頁、關於、服務和聯絡的連結。我們可以在我們的 Web 應用程式中使用此概念透過提供的連結從一個頁面導航到另一個頁面。
總結
createElement 函式透過特殊的方式建立 React 元素,幫助我們建立網站的動態和互動部分。這使得 React 應用程式更靈活,能夠執行不同的操作。在本文中,我們瞭解瞭如何使用 createElement、可以在其中放置哪些內容以及為什麼它對於使用 React 構建內容很重要。