在 React.js 中建立函式式元件


讓我們看看如何建立一個簡單的 React 函式式元件

元件是 React 庫的構建塊。元件有兩種型別。

  • 有狀態元件
  • 無狀態元件

有狀態元件有一個本地狀態物件,可以在內部進行操作。

無狀態元件沒有本地狀態物件,但我們可以在其中使用 React hook 新增一些狀態。

建立一個簡單的 ES6 函式

const player = () => {
}

這裡我們使用 const 關鍵字作為函式名,以便它不會意外地被修改。讓我們新增一個帶有某些 jsx 程式碼的 return 語句。

const player = () => {
   return (
      <p>I'm a Player</p>
   );
}

要在 JavaScript 檔案中使用 jsx,我們需要像下面這樣匯入 React

import React from 'react';
const player = () => {
   return (
      <p>I'm a Player</p>
   );
}

最後,我們需要匯出此函式

export default player;

現在,我們可以使用下面的匯入語句使用此函式式元件。

實際檔案的路徑可能需要根據相對位置進行更改。

import Player from './Player'

如果您注意到,上面的匯入語句中沒有提到副檔名。這是因為構建工作流預設情況下會自動將其視為 js 或 jsx 檔案型別。如果檔案型別不同,則也需要提及副檔名。

此 Player 函式式元件可以在 jsx 元素中使用,例如:

<Player/>

此函式式元件可以在任何地方使用,也可以多次使用。它是一個可重用的元件。

新增動態內容

我們有一個下面的 Player 元件

import React from 'react';
const player = () => {
   return (
      <p>I'm a Player</p>
   );
}
export default player;

Player 元件匯入到 app.js 檔案中

import React from 'react';
import logo from './logo.svg';
import './App.css';
import Player from './Player'
function App() {
   return (
      <div className="App">
         <Player/>
         <Player/>
         <Player/>
      </div>
   );
}
export default App;

現在,假設我們想為每個玩家顯示一些隨機分數,我們可以這樣做:

import React from 'react';
const player = () => {
   return (
      <p>I'm a Player: My score {Math.floor(Math.random() * 50)}</p>
   );
}
export default player;

儲存檔案後,從專案目錄的終端執行 npm start。

要在 jsx 中新增動態內容,我們可以在 {} 花括號內執行此操作。

讓我們看看如何向函式式元件新增屬性或特性

import React from 'react';
import './App.css';
import Player from './Player'
function App() {
   return (
      <div className="App">
         <Player name="Smith" score="100"/>
         <Player name="David" score="99">Plays for Australia </Player>
         <Player name="Phil" score="80"/>
      </div>
   );
}
export default App;

我們可以像上面一樣向 Player 元素新增屬性。要訪問為 Player 定義的函式式元件中的屬性,我們需要像下面這樣傳遞一個引數。

import React from 'react';
const player = (props) => {
   return (
      <p>I'm a Player: My name {props.name} and my score is {props.score}</p>
   );
}
export default player;

函式的引數名稱可以不同,但標準是使用 props 作為其名稱。我們使用 props.name 和**props.score 在 {} 花括號內**訪問屬性

訪問 JSX 元素的子元素

我們在 David 的 player 上有一個 children 屬性,我們可以像下面這樣訪問它:

import React from 'react';
const player = (props) => {
   return (
      <div>
         <p>I'm a Player: My name {props.name} and my score is {props.score}</p>
         {props.children}
      </div>
   );
}
export default player;

{props.children} 屬性使我們能夠訪問該文字。

更新於: 2019-09-04

2K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告