File tree Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * Portal 将子节点渲染到存在于父组件以外的 DOM 节点
3
+ * ReactDOM.createPortal(child, container)
4
+ */
1
5
import ReactDOM from "react-dom" ;
2
6
3
7
const backdropRoot = document . getElementById ( 'backdrop-root' ) ;
Original file line number Diff line number Diff line change
1
+ /*
2
+ // useEffect 是 React 中的一个 Hook,用于在函数组件中处理副作用(如数据获取、订阅、手动更改 DOM 等)
3
+ // 无依赖项: 如果不传递依赖项数组,副作用函数会在每次渲染后执行
4
+ // 空依赖项数组: 如果传递一个空数组作为依赖项,副作用函数只会在组件首次渲染时执行一次
5
+ // 带依赖项: 如果传递一个依赖项数组,副作用函数会在依赖项发生变化时执行,同时会先执行上一次渲染中的清除函数
6
+
7
+ useEffect(() => {
8
+ // 副作用逻辑
9
+ return () => {
10
+ // 清除逻辑(可选)
11
+ };
12
+ }, [依赖项]);
13
+
14
+ // demo
15
+
16
+ import React, { useEffect } from 'react';
17
+
18
+ function MyComponent() {
19
+ useEffect(() => {
20
+ // 副作用逻辑
21
+ // 相当于类组件中的生命周期方法 componentDidMount / componentDidUpdate
22
+ console.log('组件渲染或更新了');
23
+
24
+ return () => {
25
+ // 清除逻辑(可选)
26
+ // 相当于类组件中的生命周期方法 componentWillUnmount
27
+ console.log('组件卸载了');
28
+ };
29
+ }); // 无依赖项,在每次渲染后执行
30
+ // }, []); // 空依赖数组,只在组件挂载和卸载时执行
31
+
32
+ return <div>Hello, useEffect!</div>;
33
+ }
34
+ */
35
+
36
+
1
37
// 组件中部分逻辑如果直接写在函数体中,会影响到组件的渲染,如 setState 触发渲染死循环
2
38
// 为了避免副作用,使用钩子函数 useEffect() 处理那些不能直接写在组件内部的代码
3
39
// 如获取数据、记录日志、检查登录、设置定时器等
You can’t perform that action at this time.
0 commit comments