React Hooks ialah fungsi yang membolehkan anda menggunakan keadaan dan ciri React lain dalam komponen berfungsi, yang secara tradisinya hanya tersedia dalam komponen kelas. Mereka telah diperkenalkan dalam React 16.8 dan sejak itu telah menjadi standard untuk menulis komponen React. Berikut ialah pecahan cangkuk yang paling biasa digunakan:
import React, { useState } from 'react'; function Counter() { const [count, setCount] = useState(0); // Declare a state variable called 'count' return ( <div> <p>You clicked {count} times</p> <button onClick={() => setCount(count + 1)}> Click me </button> </div> ); }
import React, { useEffect, useState } from 'react'; function Example() { const [data, setData] = useState(null); useEffect(() => { fetch('https://api.example.com/data') .then(response => response.json()) .then(data => setData(data)); }, []); // Empty dependency array means this effect runs once after the initial render. return <div>{data ? data : 'Loading...'}</div>; }
import React, { useContext } from 'react'; const ThemeContext = React.createContext('light'); function DisplayTheme() { const theme = useContext(ThemeContext); // Access the current theme context value return <div>The current theme is {theme}</div>; }
import React, { useReducer } from 'react'; function reducer(state, action) { switch (action.type) { case 'increment': return { count: state.count + 1 }; case 'decrement': return { count: state.count - 1 }; default: return state; } } function Counter() { const [state, dispatch] = useReducer(reducer, { count: 0 }); return ( <div> <p>Count: {state.count}</p> <button onClick={() => dispatch({ type: 'increment' })}>+</button> <button onClick={() => dispatch({ type: 'decrement' })}>-</button> </div> ); }
import React, { useRef, useEffect } from 'react'; function TextInputWithFocusButton() { const inputEl = useRef(null); const onButtonClick = () => { inputEl.current.focus(); // Access the DOM element directly }; return ( <> <input ref={inputEl} type="text" /> <button onClick={onButtonClick}>Focus the input</button> </> ); }
import React, { useMemo, useCallback } from 'react'; function Example({ items }) { const expensiveCalculation = useMemo(() => { return items.reduce((a, b) => a + b, 0); }, [items]); const memoizedCallback = useCallback(() => { console.log('This function is memoized'); }, []); return <div>{expensiveCalculation}</div>; }
Cangkuk telah mengubah cara pembangun menulis aplikasi React, menjadikan komponen berfungsi lebih berkebolehan dan lebih mudah untuk diurus.
Atas ialah kandungan terperinci React Hooks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!