目录
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 />)