以下內(nèi)容摘自 React文檔
何時(shí)使用 Refs
下面是幾個(gè)適合使用 refs 的情況:
- 管理焦點(diǎn),文本選擇或媒體播放。
- 觸發(fā)強(qiáng)制動(dòng)畫。
- 集成第三方 DOM 庫(kù)。
避免使用 refs 來做任何可以通過聲明式實(shí)現(xiàn)來完成的事情。
舉個(gè)例子,避免在 Dialog 組件里暴露 open() 和 close() 方法,最好傳遞 isOpen 屬性。
勿過度使用 Refs
你可能首先會(huì)想到使用 refs 在你的 app 中“讓事情發(fā)生”。如果是這種情況,請(qǐng)花一點(diǎn)時(shí)間,認(rèn)真再考慮一下 state 屬性應(yīng)該被安排在哪個(gè)組件層中。通常你會(huì)想明白,讓更高的組件層級(jí)擁有這個(gè) state,是更恰當(dāng)?shù)摹2榭?狀態(tài)提升 以獲取更多有關(guān)示例。
注意
下面的例子已經(jīng)更新為使用在 React 16.3 版本引入的
React.createRef()API。如果你正在使用一個(gè)較早版本的 React,我們推薦你使用回調(diào)形式的 refs。
摘這段內(nèi)容是最近基本上是在重新學(xué)習(xí)React, 對(duì)Ref的使用還是停留在 16.3 以前的版本上。Play Demo