Skip to content

自定义 Hooks

  • 自定义 Hooks 必须以 use 开头,否则不读取

  • 必须有返回值

返回值或者方法

  • 自定义 Hooks 返回数组
javascript
import { useState, useEffect } from "react";
function useCustomHooks(defaultCount) {
  const [count, setcount] = useState(defaultCount);
  useEffect(() => {
    console.log("测试执行");
  }, [count]);

  return [count, setcount];
}

export default useCustomHooks;
  • 使用的时候
javascript
import React from "react";
import SecondComponent from "./Second";
import UseHooks from "./CutomHooks";
function App() {
  const [count, setcount] = UseHooks(0);
  function handleClick() {
    setcount(() => {
      return count + 1;
    });
  }
  return (
    <div>
      <span>{count}</span>
      <button onClick={handleClick}>点击</button>
      <SecondComponent count={count}></SecondComponent>
    </div>
  );
}
export default App;

自定义 Hooks 返回 jsx

  • CutomHooks(自定义组件返回 html)
javascript
import React, { useState, useEffect } from "react";
function useCustomHooks(defaultCount) {
  const [count, setcount] = useState(defaultCount);
  useEffect(() => {
    console.log("测试执行");
  }, [count]);
  function handleClick() {
    setcount(() => {
      return count + 1;
    });
  }
  return (
    <div>
      <span>{count}</span>
      <button onClick={handleClick}>点击</button>
    </div>
  );
}

export default useCustomHooks;
  • 使用的时候
javascript
import React from "react";
import UseHooks from "./CutomHooks";
function App() {
  return <div>{UseHooks(0)}</div>;
}
export default App;