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


相关文章
|
3月前
|
容器 Kubernetes Docker
云原生JSF:在Kubernetes的星辰大海中,让JSF应用乘风破浪!
【8月更文挑战第31天】在本指南中,您将学会如何在Kubernetes上部署JavaServer Faces (JSF)应用,享受容器化带来的灵活性与可扩展性。文章详细介绍了从构建Docker镜像到配置Kubernetes部署全流程,涵盖Dockerfile编写、Kubernetes资源配置及应用验证。通过这些步骤,您的JSF应用将充分利用Kubernetes的优势,实现自动化管理和高效运行,开启Java Web开发的新篇章。
54 0
|
6月前
|
前端开发 API 开发者
React Hooks API:自定义Hooks的创建与使用
【4月更文挑战第25天】本文介绍了React自定义Hooks的创建与使用。自定义Hooks是提升React开发效率的关键工具。
|
6月前
|
缓存 前端开发 JavaScript
彻底学会react hooks API以及应用场景
【4月更文挑战第6天】 React Hooks是16.8版引入的新特性,允许在函数组件中使用state和其它React功能,避免类组件。主要包括useState(添加state)、useEffect(处理副作用)、useContext(访问上下文)、useReducer(使用reducer)、useCallback(缓存函数)、useMemo(缓存计算结果)和useRef(访问DOM元素)。Hooks简化了代码组织和重用,提高了代码效率和可维护性。
102 0
|
Web App开发 JavaScript 前端开发
Vue3.0 Composition API和Hooks使用学习文档
Vue3.0 Composition API和Hooks使用学习文档
6903 0
|
前端开发 JavaScript Java
Vue3的Composition API与React的Hooks
Vue3的Composition API与React的Hooks
187 0
|
存储 缓存 前端开发
|
前端开发 API C++
相似度99%?Jetpack Compose 与 React Hooks API对比
众所周知Jetpack Compose设计理念甚至团队成员很多都来自React,在API方面参考了很多React(Hooks) 的设计,通过与React进行对比可以更好地熟悉Compose的相关功能。
430 0
|
JavaScript API
熬夜讲解vue3组合API中setup、 ref、reactive的用法以及hooks的使用
熬夜讲解vue3组合API中setup、 ref、reactive的用法以及hooks的使用
熬夜讲解vue3组合API中setup、 ref、reactive的用法以及hooks的使用
|
6天前
|
JSON API 数据格式
淘宝 / 天猫官方商品 / 订单订单 API 接口丨商品上传接口对接步骤
要对接淘宝/天猫官方商品或订单API,需先注册淘宝开放平台账号,创建应用获取App Key和App Secret。之后,详细阅读API文档,了解接口功能及权限要求,编写认证、构建请求、发送请求和处理响应的代码。最后,在沙箱环境中测试与调试,确保API调用的正确性和稳定性。