React.js 由 Facebook 開發和維護,已成為用於建立使用者介面(尤其是單頁應用程式 (SPA))的最受歡迎的 JavaScript 程式庫之一。 React 以其靈活性、高效和易用性而聞名,擁有龐大的社群和豐富的資源供各個層級的開發人員使用。無論您是初學者還是希望將 React 添加到您的技能組合中的經驗豐富的開發人員,本教程都將引導您了解 React.js 的基礎知識。
React.js 是一個開源 JavaScript 函式庫,用於建立使用者介面,特別是對於需要快速、互動式使用者體驗的單頁應用程式。 React 允許開發人員創建大型 Web 應用程序,這些應用程式可以有效地更新和渲染以回應資料變更。它是基於元件的,這意味著 UI 被分成小的、可重複使用的部分,稱為元件。
開始編碼之前,您需要設定開發環境。請依照以下步驟操作:
您可以從官網下載並安裝Node.js。 npm 與 Node.js 捆綁在一起。
Facebook 建立了一個名為 Create React App 的工具,可以幫助您快速且有效率地建立新的 React 專案。在終端機中執行以下命令:
npx create-react-app my-app
此指令會建立一個名為 my-app 的新目錄,其中包含啟動 React 專案所需的所有檔案和相依性。
導航到您的專案目錄並啟動開發伺服器:
cd my-app npm start
您的新 React 應用程式現在應該在 http://localhost:3000 上運行。
React 就是元件。 React 中的元件是一個獨立的模組,它呈現一些輸出,通常是 HTML。組件可以定義為 功能組件 或 類別組件.
功能元件是一個傳回 HTML 的簡單 JavaScript 函數(使用 JSX)。
範例:
function Welcome(props) { return <h1>Hello, {props.name}</h1>; }
類別元件是一種更強大的定義元件的方式,並允許您管理本機狀態和生命週期方法。
範例:
class Welcome extends React.Component { render() { return <h1>Hello, {this.props.name}</h1>; } }
JSX 是 JavaScript 的語法擴展,看起來與 HTML 類似。它允許您直接在 JavaScript 中編寫 HTML,然後 React 將其轉換為真正的 DOM 元素。
範例:
const element = <h1>Hello, world!</h1>;
JSX 讓 UI 結構的編寫和視覺化變得更加容易。然而,在幕後,JSX 被轉換為 React.createElement() 呼叫。
Props(「屬性」的縮寫)用於將資料從一個元件傳遞到另一個元件。它們是不可變的,這意味著它們不能被接收組件修改。
範例:
function Greeting(props) { return <h1>Hello, {props.name}!</h1>; }
State 與 props 類似,但它是在元件內管理的,並且可以隨著時間的推移而改變。狀態通常用於組件需要追蹤的數據,例如使用者輸入。
範例:
class Counter extends React.Component { constructor(props) { super(props); this.state = { count: 0 }; } increment = () => { this.setState({ count: this.state.count + 1 }); } render() { return ( <div> <p>Count: {this.state.count}</p> <button onClick={this.increment}>Increment</button> </div> ); } }
在 React 中處理事件類似於在 DOM 元素中處理事件。但是,存在一些語法差異:
範例:
function Button() { function handleClick() { alert('Button clicked!'); } return ( <button onClick={handleClick}> Click me </button> ); }
React 中的類別元件具有特殊的生命週期方法,可讓您在元件生命週期中的特定時間執行程式碼。其中包括:
範例:
class Timer extends React.Component { componentDidMount() { this.timerID = setInterval( () => this.tick(), 1000 ); } componentWillUnmount() { clearInterval(this.timerID); } render() { return ( <div> <h1>{this.state.date.toLocaleTimeString()}</h1> </div> ); } }
In React, you can create different views depending on the state of your component.
Example:
function Greeting(props) { const isLoggedIn = props.isLoggedIn; if (isLoggedIn) { return <h1>Welcome back!</h1>; } return <h1>Please sign up.</h1>; }
When you need to display a list of data, React can render each item as a component. It’s important to give each item a unique "key" prop to help React identify which items have changed.
Example:
function NumberList(props) { const numbers = props.numbers; const listItems = numbers.map((number) => <li key={number.toString()}>{number}</li> ); return ( <ul>{listItems}</ul> ); }
React Hooks allow you to use state and other React features in functional components. Some of the most commonly used hooks include:
Example of useState:
function Counter() { const [count, setCount] = useState(0); return ( <div> <p>You clicked {count} times</p> <button onClick={() => setCount(count + 1)}> Click me </button> </div> ); }
Once your application is ready, you can build it for production. Use the following command:
npm run build
This will create an optimized production build of your React app in the build folder. You can then deploy it to any web server.
React.js is a powerful tool for building modern web applications. By understanding components, state management, event handling, and hooks, you can create dynamic and interactive user interfaces. This tutorial covers the basics, but React's ecosystem offers much more, including advanced state management with Redux, routing with React Router, and server-side rendering with Next.js.
As you continue your journey with React, remember to leverage the wealth of online resources, including the official React documentation, community forums, and tutorials. Happy coding!
以上是學習 React.js 的綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!