zoukankan      html  css  js  c++  java
  • React 16.8.6 Hooks小结

    1.useEffect 模拟 componentDidmunt:

    useEffect(() => { document.title = `XXXX`; // 数据请求 }, [])

    2.模拟 componentDidUpdate:

    useEffect(() => { // 处理 }, [props属性])  // 自己浅对比

    3.模拟 componentWillunmunt:

    useEffect(() => {

    return () => { console.log('2222'); };

    }, [])

    注:useEffect目前不支持Pre-render lifecycle events(getDerivedStateFromProps,componentWillReceiveProps)

    父级调用子级的方法:

    子级(list.tsx):

    import React, { useImperativeHandle, forwardRef } from 'react'
    
    const List: React.SFC<ListProps> = (props, ref) => {
    // 某方法
    const test = () =>{
     console.log('111')
    }
    // 开放Api
    useImperativeHandle(ref, () => ({
      test,
    }))
    return (<div>我是子级</div>)
    
    }
    
    export default forwardRef(List)

    父(index.tsx):

    import React, { useRef } from 'react'
    import List from './List'
    
    const Parent: React.SFC<indexProps> = (props) => {
    let chidrenfun: React.RefObject
    <unknown> = useRef()
    const testFun
    = () => { childrenfun.current.test() // 输出111 }
    return (
    <div>   <div onClick={testFun}>点击测试</div>   <List ref={childrenFun} /> </div>
    ) }

     注: 在function组件中 useRefcreateRef靠谱,useRef只会把初始渲染的实例化返回。在基于类的组件中,createRef将始终创建新的ref。

  • 相关阅读:
    mysql 远程登录修改配置
    scrapy--分布式爬虫
    win10---cmd终端下连接ubantu--SSH SERVER服务
    将python环境打包成.txt文件
    ubantu安装python3虚拟环境
    selenium 自动化安装火狐谷歌插件
    mysql主从复制-读写分离-原理
    mysql主从复制原理
    mysql储存引擎
    mysql检查-优化-分析
  • 原文地址:https://www.cnblogs.com/xiaoxiao666/p/11447874.html
Copyright © 2011-2022 走看看