useRef 替代全局变量 存储二维数组
时间: 2024-11-09 15:26:49 浏览: 16
`useRef` 是 React 内置的一个 hook,它返回一个引用当前节点的可变对象,通常用于存储一些不可变的状态,比如 DOM 元素或者在组件生命周期内需要长期存在的值。如果你想用 `useRef` 来替代全局变量存储二维数组,你可以这样做:
1. 首先,创建一个空的 `useRef` 对象,用来保存数组实例:
```jsx
const arrayRef = useRef([]);
```
2. 当你需要初始化二维数组时,可以在组件的渲染函数中赋值给这个引用:
```jsx
function MyComponent() {
const [rows, setRows] = useState([]);
// 初始化二维数组
useEffect(() => {
const data = [
// 二维数组内容
[...]
];
arrayRef.current = data;
setRows(data); // 如果需要同步状态到 state
}, []);
// 然后通过 arrayRef.current 访问和修改数组
function updateArray(newData) {
arrayRef.current = newData;
}
return <div>{/* 使用 rows 或者 arrayRef.current */}
}
```
在这个例子中,`arrayRef.current` 就像是一个局部的、组件级别的“全局”变量,你可以随时更新它,而不会影响其他组件。
阅读全文