React入门useStateuseRefuseContent等API讲解

useState


语法:
const [n, setN] = React.useState(0);

0是n的默认值,setN是操作n的函数

setN:

  1. 我们以为setN会改变n,但是事实往往出乎意料,n并不会变,他是将改变后的数据存到一个数据里面(具体在哪里我们先定为x),而不是直接赋值去改变n
  2. setN一定会触发组件的重新渲染

useState:

  1. useState肯定会从x那里,读取到n的最新值

x:

  1. 每个组件都有自己的x,这个x我们命名为state

useRef


语法:

const nRef = React.useRef(0);
nRef.current(表示当前的值)

nRef.current:

  1. 当值改变了不会重新render

useContext


const themeContext = React.createContext(null);

function App() {
  const [theme, setTheme] = React.useState("red");
  return (
    // themeContext.Provider 创建一个局部作用域
    // 其中里面的所有组件都可以使用setTheme这个函数
    <themeContext.Provider value={{ theme, setTheme }}>
      <div className={`App ${theme}`}>
        <p>{theme}</p>
        <div>
          <ChildA />
        </div>
        <div>
          <ChildB />
        </div>
      </div>
    </themeContext.Provider>
  );
}

function ChildA() {
  // ChildA这个子组件内部想使用父组件setTheme函数的方式
  const { setTheme } = React.useContext(themeContext);
  return (
    <div>
      <button onClick={() => setTheme("red")}>red</button>
    </div>
  );
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理