美文网首页react源码
React Hook第一次看文档

React Hook第一次看文档

作者: 花亭子老纯 | 来源:发表于2020-05-07 16:26 被阅读0次

一直在用react开发,组件都是class方式定义,确实会觉得写这么多class好繁琐,这不大佬们就出来解决我们小白的问题了。
还是先写点文档上面的东西吧,Hook啊React 16.8d 新特性,(我写文章的时候已经16.13.1了)它的目的就是让我们开发的时候可以不编写class也能使用state,以及一些其他特性。

常用的API

  • 下面只会是写我总结出来的了,可能有问题大家可以对照文档 去再看
    中文官网

useState

他是要成对出现的,例如:

import React,{useState} from ' react'
function Test(){
cons [fruit ,setFruit] = useState('banana');
}

这段代码中方括号他是什么意思呢,我们要知道一个东西就是数组解构它意味着我们同时创建了 fruit 和 setFruit 两个变量,fruit 的值为 useState 返回的第一个值,setFruit 是返回的第二个值。它等价于下面的代码:

var fruitStateVariable = useState('banana'); // 返回一个有两个元素的数组
  var fruit = fruitStateVariable[0]; // 数组里的第一个值
  var setFruit = fruitStateVariable[1]; // 数组里的第二个值

使用的时候直接把之前的this.setState换成setFruit就ok了
我们在定义的时候是可以定义多个的例如上面的代码我们是可以这样:

import React,{useState} from ' react'
function Test(){
cons [fruit ,setFruit] = useState('banana');
cons [fruit2 ,setFruit2] = useState('banana2');
...
}

只要是一一对应就行了
其他后面的useEffect也是一样

useEffect

副作用翻译过来估计,我看到的就是之前在componentDidMount,componentDidUpdate 和 componentWillUnmount 这三个函数中做的事情他一个人包了。
定义和使用就不啰嗦了和useState一样,只是我们经常会有这样的需求就是在DOM渲染完监听事件,在组件卸载的时候移除监听,在这里我们就要这样去写:

import React, {useEffect } from 'react';
 function Test() {
  useEffect(() => {
    document.addEventListen('clcik',fn)
    return function cleanup() {
     document.removeEventListen('clcik',fn)
    };
  });
}

这只是一个示例,我们在useEffect中返回一个函数,React在卸载的时候会调用他

effect 的条件执行

默认情况下,effect 会在每轮组件渲染完成后执行。这样的话,一旦 effect 的依赖发生变化,它就会被重新创建。

然而,在某些场景下这么做可能会矫枉过正。比如,我们不需要在每次组件更新时都创建新的订阅,而是仅需要在 source prop 改变时重新创建。
要实现这一点,可以给 useEffect 传递第二个参数,它是 effect 所依赖的值数组。更新后的示例如下:

useEffect(
  () => {
    const subscription = props.source.subscribe();
    return () => {
      subscription.unsubscribe();
    };
  },
  [props.source],
);
其他注意的:

我模拟抽离公共副作用函数的时候需要用use开头驼峰命名
不要在循环里面使用Hook,要在最外层使用

useContext

相关文章

  • React hooks-useState、useEffect、u

    Hook 是 React 16.8 的新增特性官方文档:https://reactjs.org/docs/hook...

  • React Hook第一次看文档

    一直在用react开发,组件都是class方式定义,确实会觉得写这么多class好繁琐,这不大佬们就出来解决我们小...

  • useRef、useImperativeHandle、useCa

    react hook父组件调用子组件父子: 官方文档 useImperativeHandle useImperat...

  • React hook 10种 Hook

    React hook 10种 Hook (详细介绍及使用) React Hook是什么?React官网是这么介绍的...

  • 再聊react hook

    React Hook是React函数式组件,它不仅仅有函数组件的特性,还带有React框架的特性。所以,官网文档多...

  • React-Hook快速入门(一)

    一、React介绍 温馨提醒:想要获取更好的观看效果,可以点击查看本篇文章的原文档(React-Hook快速入门(...

  • Composition API和React Hook的区别

    从React Hook的实现角度看,React Hook是根据useState调用的顺序来确定下一次重渲染时的st...

  • 学习react hook的总结

    react16推出了react hook,react hook使得functional组件拥有了class组件的一...

  • react-hook-form使用

    官网地址:https://react-hook-form.com/[https://react-hook-form...

  • react hook介绍

    react hook是什么 react hook是react中引入新特性,它可以让react函数组件也拥有状态;通...

网友评论

    本文标题:React Hook第一次看文档

    本文链接:https://www.haomeiwen.com/subject/ntjaghtx.html