在 React.js 中,有多種方法可用於管理元件、處理生命週期事件和使用鉤子。下面,我將最重要的方法分成不同的部分:
在 React 類別元件 中,您可以重寫多種生命週期方法以在元件生命週期中的特定時間運行程式碼:
建構子()
static getDerivedStateFromProps(props, state)
渲染()
componentDidMount()
static getDerivedStateFromProps(props, state)
shouldComponentUpdate(nextProps, nextState)
渲染()
getSnapshotBeforeUpdate(prevProps, prevState)
componentDidUpdate(prevProps, prevState, snapshot)
Hooks 是 React 16.8 中的新增功能,讓您無需編寫類別即可使用狀態和其他 React 功能。
const [count, setCount] = useState(0);
useEffect(() => { // Effect logic here return () => { // Cleanup logic here (like componentWillUnmount) }; }, [dependencies]);
const value = useContext(MyContext);
const [state, dispatch] = useReducer(reducer, initialState);
const memoizedCallback = useCallback(() => { doSomething(); }, [dependencies]);
const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
const inputRef = useRef();
useImperativeHandle(ref, () => ({ focus: () => inputRef.current.focus() }));
useLayoutEffect(回調,相依性)
useDebugValue(值)
const [count, setCount] = useState(0);
React 提供了處理事件的方法,與常規 DOM 事件處理類似,但有一些區別:
範例:
useEffect(() => { // Effect logic here return () => { // Cleanup logic here (like componentWillUnmount) }; }, [dependencies]);
這些是您可能會發現有用的其他方法:
React.createRef()
React.forwardRef()
React.memo(組件)
React.lazy()
反應.懸念
範例:
const value = useContext(MyContext);
propTypes
defaultProps
範例:
const [state, dispatch] = useReducer(reducer, initialState);
當您需要對元件生命週期進行細微控制時,請使用類別元件;當您想要更簡單、更清晰的 API 時,請使用鉤子。
以上是React的主要概念||反應的詳細內容。更多資訊請關注PHP中文網其他相關文章!