小编Ste*_*ley的帖子

React Hooks 渲染两次

我定义了一个场景:我们有一个使用父级道具和自身状态的组件。

有两个组件 DC 和 JOKER 以及我在下面的步骤:

  1. 单击 DC 的按钮
  2. DC 设置计数
  3. JOKER 将使用旧状态进行渲染
  4. 运行 useEffect 和 setCount
  5. JOKER 再次渲染

在此处输入图片说明

我想问一下为什么 JOKER 渲染两次(第 3 步和第 5 步),而第一个渲染浪费了性能。我只是不想要第 3 步如果在类组件中,我可以使用 componentShouldUpdate 来避免它。但是 Hooks 有同样的东西吗?

我的代码在下面,或者打开这个网站https://jsfiddle.net/stephenkingsley/sw5qnjg7/

import React, { PureComponent, useState, useEffect, } from 'react';

function JOKER(props) {
  const [count, setCount] = useState(props.count);
  useEffect(() => {
    console.log('I am JOKER\'s useEffect--->', props.count);
    setCount(props.count);
  }, [props.count]);

  console.log('I am JOKER\'s  render-->', count);
  return (
    <div>
      <p style={{ color: 'red' }}>JOKER: You clicked …
Run Code Online (Sandbox Code Playgroud)

javascript rerender reactjs react-hooks

17
推荐指数
3
解决办法
1万
查看次数

标签 统计

javascript ×1

react-hooks ×1

reactjs ×1

rerender ×1