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);
  • 相关阅读:
    移植stemwin笔记01 emwin文档说明
    emwin笔记
    stm32ucosiii 笔记03
    stm32操作系统ucosiii笔记02
    ucosiii笔记01
    keil4与proteus联机调试
    计算机网络一:OSI七层、TCP/IP五层与TCP/IP四层
    数据结构-概述
    RS232、RS485和RS422
    UART串口通讯协议
  • 原文地址:https://www.cnblogs.com/art-poet/p/14386243.html
Copyright © 2011-2022 走看看