hooks的常用Api

简介: hooks的常用Api

Ref Hook


Ref Hook可以在函数组件中存储/查找组件内的标签或其他数据

语法:const refContainer = useRef()

获取值 refContainer .current.value

作用:保存标签对象,功能与React.creatRef()一样


Effect Hook


1、Effect Hook 可以让你在函数组件中执行副作用操作(用于模拟类组件中的生命周期钩子)


2、React中副作用操作:


发ajax请求数据获取

设置订阅/启动定时器

手动更改真实DOM


3、语法和说明

useEffect(()=>{
  //在此可以执行任何带副作用操作
  return()=>{
    // 在组件卸载前执行
  }
},[stateVlaue])  //如果指定的是[],回调函数只会在第一次render()后执行


4、可以把 uerEffect Hook 看做如下三个函数的组合

componentDidMount()
componentDidUpdate()
conponentWillUnmount()


State Hook


1、作用: State Hook让函数组件也可以有state状态,并进行状态数据的读写操作

2、语法:const [xxx, setXxx] = React.useState(initValue)

3、userState()说明:

参数:第一次初始值指定的值在内部作缓存

返回值:包含2个元素的数组,第一个为内部当前状态值,第2个为更新状态值的函数

4、setXxx()2种写法:

setXxx(newValue):参数为非函数值,直接指定新的状态值,内部用其覆盖原来的状态值

setXxx(vlaue=>newValue):参数为函数,接收原本的状态值,返回新的状态值,内部用其覆盖原来的状态值

5、【补】setXxx列子 ——注意复合数据类型的引用,引用未更新,不会渲染。

const [num, setNum] = useState({a:1})
setNum({ ...num, ...{arr:[4,5,6]}}) 扩展运算符修改值
setNum(Object.assign({},num,{arr:[3,4,5]})) Object.assign()


例子


import React,{Fragment} from 'react';
import ReactDom from 'react-dom';
//Fragment问答ing碎片 只有一个key属性
function Demo() {
  console.log('我执行了')
  const [count, setCount] = React.useState(0);
  const myRef = React.useRef()
  // React.useEffect(() => {
  //   // 数组中不写东西就相当于DidMount
  //   let time = setInterval(() => {
  //     setCount(count => count + 1)
  //   }, 1000)
  //   return () => {
  //     // return里相当于WillUnmount
  //   clearInterval(time)
  //   }
  // },[])
  function add(){
    setCount(count + 1)
    // setCount(count=>count+1)
  }
  function show() {
    alert(myRef.current.value)
  }
  function unMount() {
    ReactDom.unmountComponentAtNode(document.getElementById('root'))
  }
  return (
    <div>
      <input type="text" ref={myRef} /><button onClick={show}>提示</button>
      <br />
      <button onClick={add}>加一</button>{count}
      <button onClick={unMount}>卸载组件</button>
      <hr />
    </div>
  )
}
export default Demo


useContext


// 孙组件代码,父组件传值与context代码一致
import { useEffect,useContext } from 'react';
import Mycontext from './store'
export default () => {
  const user = useContext(Mycontext);
  useEffect(
    () => {
      console.log(user)
    },[]
  )
  return (
    <>
      b组件
      <br/>
    </>
  )
}


相关文章
|
2月前
|
前端开发 JavaScript API
探究 React Hooks:如何利用全新 API 优化组件逻辑复用与状态管理
本文深入探讨React Hooks的使用方法,通过全新API优化组件逻辑复用和状态管理,提升开发效率和代码可维护性。
|
5月前
|
容器 Kubernetes Docker
云原生JSF:在Kubernetes的星辰大海中,让JSF应用乘风破浪!
【8月更文挑战第31天】在本指南中,您将学会如何在Kubernetes上部署JavaServer Faces (JSF)应用,享受容器化带来的灵活性与可扩展性。文章详细介绍了从构建Docker镜像到配置Kubernetes部署全流程,涵盖Dockerfile编写、Kubernetes资源配置及应用验证。通过这些步骤,您的JSF应用将充分利用Kubernetes的优势,实现自动化管理和高效运行,开启Java Web开发的新篇章。
58 0
|
5月前
|
前端开发 JavaScript API
掌握React表单管理的高级技巧:探索Hooks和Context API如何协同工作以简化状态管理与组件通信
【8月更文挑战第31天】在React中管理复杂的表单状态曾是一大挑战,传统上我们可能会依赖如Redux等状态管理库。然而,React Hooks和Context API的引入提供了一种更简洁高效的解决方案。本文将详细介绍如何利用Hooks和Context API来优化React应用中的表单状态管理,通过自定义Hook `useForm` 和 `FormContext` 实现状态的轻松共享与更新,使代码更清晰且易于维护,为开发者带来更高效的开发体验。
50 0
|
8月前
|
前端开发 API 开发者
React Hooks API:自定义Hooks的创建与使用
【4月更文挑战第25天】本文介绍了React自定义Hooks的创建与使用。自定义Hooks是提升React开发效率的关键工具。
|
8月前
|
缓存 前端开发 JavaScript
彻底学会react hooks API以及应用场景
【4月更文挑战第6天】 React Hooks是16.8版引入的新特性,允许在函数组件中使用state和其它React功能,避免类组件。主要包括useState(添加state)、useEffect(处理副作用)、useContext(访问上下文)、useReducer(使用reducer)、useCallback(缓存函数)、useMemo(缓存计算结果)和useRef(访问DOM元素)。Hooks简化了代码组织和重用,提高了代码效率和可维护性。
109 0
|
前端开发 JavaScript Java
Vue3的Composition API与React的Hooks
Vue3的Composition API与React的Hooks
193 0
|
存储 缓存 前端开发
|
前端开发 API C++
相似度99%?Jetpack Compose 与 React Hooks API对比
众所周知Jetpack Compose设计理念甚至团队成员很多都来自React,在API方面参考了很多React(Hooks) 的设计,通过与React进行对比可以更好地熟悉Compose的相关功能。
447 0
|
23天前
|
人工智能 自然语言处理 API
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
谷歌推出的Multimodal Live API是一个支持多模态交互、低延迟实时互动的AI接口,能够处理文本、音频和视频输入,提供自然流畅的对话体验,适用于多种应用场景。
71 3
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动