React 18之新hook

本文介绍了React 18新增的五个Hook:useId、useTransition、useDeferredValue、useSyncExternalStore和useInsertionEffect。useId生成唯一ID,支持添加前缀;useTransition标记非紧急更新,优化大量渲染场景;useDeferredValue延迟更新,减少不必要的渲染;useSyncExternalStore同步外部存储;useInsertionEffect在插入DOM时同步触发,适用于注入样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

useId

useId语法

增加前缀

实例

 useTransition 

useDeferredValue 

代码实例

 useSyncExternalStore 

 useInsertionEffect 


react18新出了5个hook, 分别是 : 

  • useId 
  • useTransition 
  • useDeferredValue 
  • useSyncExternalStore 
  • useInsertionEffect 

useId

useId用于生成一个包含 :号的唯一id , 可在组件中多次使用, id是不重复的, 当项目中存在多个根应用时, 我们还可以给useId生成的id增加前缀 

useId语法

const id = useId();

增加前缀

增加前缀在 ReactDOM.createRoot 函数的第二个参数配置 identifierPrefix 字段即可, 在此说一下, react18已结废弃了 ReactDom.render方法, 改用root.render, ReactDOM.createRoot用于生成root根节点

const root = ReactDOM.createRoot(document.getElementById('root'), {identifierPrefix: 'app1-',})

实例

useId.js

import React, { useId } from 'react'

function UseId() {
  const id1 = useId()
  const id2 = useId()
  const id3 = useId()
  const id4 = useId()
  const id5 = useId()
  return (
    <div style={
  { height: 200, width: '100%', background: 'skyblue' }}>
      <h1>useId</h1>
      <p>id1 : {id1}</p>
      <p>id2 : {id2}</p>
      <p>id3 : {id3}</p>
      <p>id4 : {id4}</p>
      <p>id5 : {id5}</p>
    </div>
  )
}
export default UseId

index.js

import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'

const root = ReactDOM.createRoot(document.getElementById('root'), {
  identifierPrefix: 'app1-',
})
root.render(<App />)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值