React03

目录

一、生命周期(类组件才有生命周期)

二、Hooks

 1、概念:

 2、特点:

 3、函数作用

 4、Hooks

     1、State Hook使用

     2、Effect Hook

     3、Context Hook

     4、Hook 规则

     5、自定义Hook

三、其他


一、生命周期(类组件才有生命周期)

      概念:react组件实例从创建运行到销毁经历的一系列过程

      钩子函数:

        挂载时:

          constructor:创建组件时,最先执行,初始化时只执行一次。可初始化state,创建Ref

          render:每次组件渲染都会触发

          componentDidMount:组价挂载完成DOM渲染后执行,初始化时执行一次。可以发送网络请求和DOM操作

        更新时:

          render:每次组件渲染都会触发

          componentDidUpdate:组件更新后,DOM渲染完成。可以获取更新后的DOM内容

        卸载时:

          componentWillUnmount:组件卸载,从页面消失。可执行清理工作

二、Hooks

 1、概念:

        是一些可以让你在函数组件里“钩入”react state及生命周期等特性的函数

 2、特点:

        组件之间复用状态逻辑,不需要修改组件的结构

        可将组件中互相关联的部分拆分成更小的函数

        在不编写class的情况下使用state以及其他的react特性

3、函数作用

        函数主要作用,通过数据渲染ui界面

        除主要作用之外的操作为副作用

        如:操作DOM节点

            Ajax网络请求

4、Hooks

    1、State Hook使用:

        1、导出

          import {useState} from "react"

        2、定义状态

          const [num,setNum] = useState(0)

        3、使用值

          <p>{num}</p>

          num:值,每次更新后的值

          setNum:更改值

          箭头函数内的语句每次执行都会将整个程序从头到尾的执行一次

   2、Effect Hook

          1、作用:在函数组件中添加副作用操作的hooks钩子函数

          2、使用:

            1、导入useEffect

            2、useEffect(()=>副作用)

          3、执行时机:

            1、默认:无参数,初始执行,每次状态数据更新就会执行一次

                类似class类组件中的componentDidUpdate生命周期函数

            2、依耐项为[]:只在初始化执行页面进入时执行一次,网络请求时可使用

            3、依耐项为状态数据,可以为多个[num,msg],初始化执行,状态数据变化时执行

            4、类似于vue中的计数器和侦听器

          4、清理副作用

          useEffect(()=>{

            return ()={

              //清理副作用的代码

            }

          })

  3、Context Hook

          1、利用跨组件通讯的方式,需要定义一个公共的React.createContext()

          2、在传参的部分使用React.createContext(参数)

            import React from "react";

            export const MessageContext = React.createContext()

          3、在传参的组件中使用.Provider定义value的方法传值,将需要接收的子组件包裹在.Provider中

             state={

              content: '这是ComA组件数据',

            }

            <MessageContext.Provider value={this.state.content}>

              <ComA />

            </MessageContext.Provider>

          4、在接收的组件中利用useContext方法将定义的createContext中传送的参数传输进来

             const message = useContext(MessageContext)

          5、在需要此参数的地方直接使用{message}

          注:需要应用参数的组件都要导入同一个React.createContext(),使用useContext方法需要导入

   4、Hook 规则

        不能在除了函数组件之外的地方使用,比如:分支语句,循环语句,内部函数中执行

  5、自定义Hook

        1、新建文件在文件中定义函数组件,函数组件中封装方法

        2、在需要使用的地方利用import导入并使用

三、其他

     1、日期时间转字符串:toLocaleTimeString()

     2、获取接口的方法fetch类似于Ajax技术,返回一个promise对象,无拦截器

        语法:

        fetch('接口地址')

        .then(response=>response.json())    //返回一个promise对象

        .then(data = > console.log(data))   //返回真正的数据    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值