zoukankan      html  css  js  c++  java
  • reactHooks性能优化写法

    import React, {
      Component,
      useState,
      useCallback,
    } from 'react';
    import ReactDOM from 'react-dom';
    let Child = React.memo(function({ val, onChange }) {
      console.log('render...');
    
      return (
        <div>
          请输入:
          <input value={val} onChange={onChange} />
        </div>
      );
    });
    
    let ChildChild = React.memo(function({ val, onChange }) {
      console.log('renderChildChild...');
    
      return (
        <div>
          请确认:
          <input value={val} onChange={onChange} />
        </div>
      );
    });
    
    let ChildChildChild = React.memo(function() {
      console.log('haoahofihd...');
    
      return (
        <div>
          请说明:
          我会更新吗
        </div>
      );
    });
    
    function App() {
      let [val1, setVal1] = useState('');
      let [val2, setVal2] = useState('');
    
      let onChange1 = useCallback(evt => {
        setVal1(evt.target.value);
      }, []);
    
      let onChange11 = useCallback(evt => {
        setVal1(evt.target.value);
      }, []);
    
      let onChange2 = useCallback(evt => {
        setVal2(evt.target.value);
      }, []);
    
      let onChange22 = useCallback(evt => {
        setVal2(evt.target.value);
      }, []);
    
      return (
        <div>
          <Child val={val1} onChange={onChange1} />
          <ChildChild val={val2} onChange={onChange2} />
          <ChildChildChild />
        </div>
      );
    }
    
    let styles = {
      btn: {
        marginTop: '5px',
      },
    };
    
    // mountNode 为 Playground 预置节点
    ReactDOM.render(<App />, mountNode);
  • 相关阅读:
    管理心理学[9095]
    汽车文化[1196]
    小四轴——空心杯电机引起的电源干扰
    38 时序电路扩展2
    37 时序电路扩展1
    36 时序电路的动态特性分析2
    35 时序电路的动态特性分析1
    34 同步时序电路的设计方法2
    33 同步时序电路的设计方法1
    60. 第k个排列
  • 原文地址:https://www.cnblogs.com/art-poet/p/14386243.html
Copyright © 2011-2022 走看看