useRef 和普通变量的区别

Hyp*_*sis 6 javascript reactjs

我想知道这两个代码之间的区别

1:

import React from "react";
import ReactDOM from "react-dom";


function App() {
  const myref = React.useRef(0);
Run Code Online (Sandbox Code Playgroud)

2:

import React from "react";
import ReactDOM from "react-dom";

const myref = 0;
function App() {
Run Code Online (Sandbox Code Playgroud)

现在在任何时候我都可以改变这两个值,并且都保存在 dom 中。它们在用法上有什么区别。

Fed*_*kun 3

React.useRef(0)是组件生命周期的一部分。如果您App在应用程序中渲染两个不同的引用,则这两个引用不会发生冲突。如果您引用相同的共享和可变变量,就像在第二个示例中一样,它们就会这样做。您将遇到这样一种情况: 的一个实例App会对 的第二个实例产生意想不到的副作用App