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/>
    </>
  )
}


相关文章
|
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简化了代码组织和重用,提高了代码效率和可维护性。
22 0
|
Web App开发 JavaScript 前端开发
Vue3.0 Composition API和Hooks使用学习文档
Vue3.0 Composition API和Hooks使用学习文档
4852 0
|
前端开发 JavaScript Java
Vue3的Composition API与React的Hooks
Vue3的Composition API与React的Hooks
149 0
|
存储 缓存 前端开发
|
前端开发 API C++
相似度99%?Jetpack Compose 与 React Hooks API对比
众所周知Jetpack Compose设计理念甚至团队成员很多都来自React,在API方面参考了很多React(Hooks) 的设计,通过与React进行对比可以更好地熟悉Compose的相关功能。
357 0
|
JavaScript API
熬夜讲解vue3组合API中setup、 ref、reactive的用法以及hooks的使用
熬夜讲解vue3组合API中setup、 ref、reactive的用法以及hooks的使用
熬夜讲解vue3组合API中setup、 ref、reactive的用法以及hooks的使用
|
设计模式 缓存 前端开发
我所理解的 Hooks API
带你用另外一种角度探索 Hooks API,帮助你对 Hooks API 有更好的理解。
我所理解的 Hooks API
|
6天前
|
监控 安全 数据挖掘
Email 接口API有哪些?具体分析一下阿里云和AOK的优点
本文介绍了常见的Email接口API,如阿里云邮件推送、AOKSend、SendGrid、Mailgun和Amazon SES。阿里云API以其高稳定性和数据分析功能脱颖而出,支持批量发送和多语言;而AOKSend API以易于集成、高安全性和优秀客户支持为亮点。企业在选择时应考虑自身需求和预算,以优化邮件营销效果。

热门文章

最新文章