react-hook

Hook是React 16.8.0版本增加的新特性/新语法, 可以让你在函数组件中使用 state 以及其他的 React 特性
1 State Hook

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

usestate的参数是初始化缓存的值,返回值是包含两个元素的数组,第一个为内部缓存的值,第二个为更新状态的函数。

 let [count,setcount] = useState(0);
   function increment(){
        setcount((count)=>count+1);
    }

2 Effect Hook
Effect Hook 可以在函数组件中执行副作用操作(用于模拟类组件中的生命周期钩子),React中的副作用操作:
发ajax请求数据获取
设置订阅 / 启动定时器
手动更改真实DOM

 useEffect(()=>{
      let timer  = setInterval(()=>{
           setcount((count)=>count+1);
       },1000);
       return ()=>{
            clearInterval(timer) // 在此做一些收尾工作, 比如清除定时器/取消订阅等,模拟componentWillUnmount() 
       }
    },[]);// 如果指定的是[], 回调函数只会在第一次render()后执行,也就是模拟了componentDidMount()生命周期

可以把 useEffect Hook 看做如下三个函数的组合
componentDidMount()
componentDidUpdate()
componentWillUnmount() ,如果不指定第二个参数,那么在组件第一次render和后续state数据发生改变的时候都会去执行一次该函数。
3 Ref Hook
(1). Ref Hook可以在函数组件中存储/查找组件内的标签或任意其它数据
(2). 语法: const refContainer = useRef()
(3). 作用:保存标签对象,功能与React.createRef()一样
4当祖孙组件互相通信传递数据时
1.创建Context容器对象:

const MyContext = React.createContext()
const {Provider} = MyContext;
 <Provider value={{username: this.state.name}}>
      <A/>
 </Provider>

2.要接收传递的数据则必须使用contextType进行接收

   static contextType = MyContext;
  <h4>我的用户名是{this.context.username}</h4>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值