最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React 進(jìn)入頁(yè)面后自動(dòng) focus 到某個(gè)輸入框的解決方案

 更新時(shí)間:2024年02月20日 15:29:18   作者:徐同保  
React.js 當(dāng)中提供了 ref 屬性來(lái)幫助我們獲取已經(jīng)掛載的元素的 DOM 節(jié)點(diǎn),你可以給某個(gè) JSX 元素加上 ref屬性,這篇文章主要介紹了React 進(jìn)入頁(yè)面以后自動(dòng) focus 到某個(gè)輸入框,需要的朋友可以參考下

在 React.js 當(dāng)中你基本不需要和 DOM 直接打交道。React.js 提供了一系列的 on* 方法幫助我們進(jìn)行事件監(jiān)聽(tīng),所以 React.js 當(dāng)中不需要直接調(diào)用 addEventListener 的 DOM API;以前我們通過(guò)手動(dòng) DOM 操作進(jìn)行頁(yè)面更新(例如借助 jQuery),而在 React.js 當(dāng)中可以直接通過(guò) setState 的方式重新渲染組件,渲染的時(shí)候可以把新的 props 傳遞給子組件,從而達(dá)到頁(yè)面更新的效果。

React.js 這種重新渲染的機(jī)制幫助我們免除了絕大部分的 DOM 更新操作,也讓類似于 jQuery 這種以封裝 DOM 操作為主的第三方的庫(kù)從我們的開(kāi)發(fā)工具鏈中刪除。

但是 React.js 并不能完全滿足所有 DOM 操作需求,有些時(shí)候我們還是需要和 DOM 打交道。比如說(shuō)你想進(jìn)入頁(yè)面以后自動(dòng) focus 到某個(gè)輸入框,你需要調(diào)用 input.focus() 的 DOM API,比如說(shuō)你想動(dòng)態(tài)獲取某個(gè) DOM 元素的尺寸來(lái)做后續(xù)的動(dòng)畫,等等。

React.js 當(dāng)中提供了 ref 屬性來(lái)幫助我們獲取已經(jīng)掛載的元素的 DOM 節(jié)點(diǎn),你可以給某個(gè) JSX 元素加上 ref屬性。

可以看到我們給 input 元素加了一個(gè) ref 屬性,這個(gè)屬性值是一個(gè)函數(shù)。當(dāng) input 元素在頁(yè)面上掛載完成以后,React.js 就會(huì)調(diào)用這個(gè)函數(shù),并且把這個(gè)掛載以后的 DOM 節(jié)點(diǎn)傳給這個(gè)函數(shù)。在函數(shù)中我們把這個(gè) DOM 元素設(shè)置為組件實(shí)例的一個(gè)屬性,這樣以后我們就可以通過(guò) this.input 獲取到這個(gè) DOM 元素。

然后我們就可以在 componentDidMount 中使用這個(gè) DOM 元素,并且調(diào)用 this.input.focus() 的 DOM API。整體就達(dá)到了頁(yè)面加載完成就自動(dòng) focus 到輸入框的功能(大家可以注意到我們用上了 componentDidMount 這個(gè)組件生命周期)。

我們可以給任意代表 HTML 元素標(biāo)簽加上 ref 從而獲取到它 DOM 元素然后調(diào)用 DOM API。但是記住一個(gè)原則:能不用 ref 就不用。特別是要避免用 ref 來(lái)做 React.js 本來(lái)就可以幫助你做到的頁(yè)面自動(dòng)更新的操作和事件監(jiān)聽(tīng)。多余的 DOM 操作其實(shí)是代碼里面的“噪音”,不利于我們理解和維護(hù)。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 進(jìn)入頁(yè)面以后自動(dòng) focus 到某個(gè)輸入框</title>
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
class AutoFocusInput extends React.Component {
  componentDidMount () {
    this.input.focus()
  }
  render () {
    return (
      <input ref={(input) => this.input = input} />
    )
  }
}
ReactDOM.render(
  <AutoFocusInput />,
  document.getElementById('root')
);
</script>
</body>
</html>

另一種寫法:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 進(jìn)入頁(yè)面以后自動(dòng) focus 到某個(gè)輸入框</title>
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.inputRef = React.createRef();
  }
  render() {
    return <input type="text" ref={this.inputRef} />;
  }
  componentDidMount() {
    this.inputRef.current.focus();
  }
}
ReactDOM.render(
  <MyComponent />,
  document.getElementById('root')
);
</script>
</body>
</html>

到此這篇關(guān)于React 進(jìn)入頁(yè)面以后自動(dòng) focus 到某個(gè)輸入框的文章就介紹到這了,更多相關(guān)React 自動(dòng) focus 輸入框內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于?React?中?useEffect?使用問(wèn)題淺談

    關(guān)于?React?中?useEffect?使用問(wèn)題淺談

    本文主要介紹了關(guān)于React中useEffect使用問(wèn)題淺談,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • react調(diào)試和測(cè)試代碼的小技巧

    react調(diào)試和測(cè)試代碼的小技巧

    在開(kāi)發(fā)React應(yīng)用時(shí),嚴(yán)格模式StrictMode可以幫助開(kāi)發(fā)者捕捉到組件中的錯(cuò)誤和潛在問(wèn)題,安裝React Developer Tools瀏覽器擴(kuò)展檢查組件的props和狀態(tài),直接修改以及分析性能,@testing-library/react和Cypress或Playwright等工具可以有效地測(cè)試React組件和執(zhí)行端到端測(cè)試
    2024-10-10
  • react echarts tooltip 區(qū)域新加輸入框編輯保存數(shù)據(jù)功能

    react echarts tooltip 區(qū)域新加輸入框編輯保存數(shù)據(jù)功能

    這篇文章主要介紹了react echarts tooltip 區(qū)域新加輸入框編輯保存數(shù)據(jù)功能,大概思路是用一個(gè)div包裹echarts, 然后在echarts的同級(jí)新建一個(gè)div用來(lái)用來(lái)模擬真實(shí)tooltip,通過(guò)鼠標(biāo)移入移出事件控制真實(shí)tooltip的顯示與隱藏,需要的朋友可以參考下
    2023-05-05
  • react如何獲取URL中參數(shù)

    react如何獲取URL中參數(shù)

    這篇文章主要介紹了react如何獲取URL中參數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 實(shí)例講解React 組件生命周期

    實(shí)例講解React 組件生命周期

    這篇文章主要介紹了React 組件生命周期的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • jenkins分環(huán)境部署vue/react項(xiàng)目的方法步驟

    jenkins分環(huán)境部署vue/react項(xiàng)目的方法步驟

    這篇文章主要介紹了jenkins分環(huán)境部署vue/react項(xiàng)目的方法,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • React 條件判斷實(shí)例詳解

    React 條件判斷實(shí)例詳解

    在 React 中,可以通過(guò) JavaScript 的條件語(yǔ)句來(lái)動(dòng)態(tài)渲染組件或元素,下面給大家分享幾種常用的在 React 中處理?xiàng)l件渲染的方法,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • 解決React報(bào)錯(cuò)Parameter 'props' implicitly has an 'any' type

    解決React報(bào)錯(cuò)Parameter 'props' implicitly&nb

    這篇文章主要為大家介紹了React報(bào)錯(cuò)Parameter 'props' implicitly has an 'any' type的解決處理方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 詳解React?如何防止?XSS?攻擊論$$typeof?的作用

    詳解React?如何防止?XSS?攻擊論$$typeof?的作用

    這篇文章主要介紹了詳解React?如何防止?XSS?攻擊論$$typeof?的作用,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • React組件內(nèi)事件傳參實(shí)現(xiàn)tab切換的示例代碼

    React組件內(nèi)事件傳參實(shí)現(xiàn)tab切換的示例代碼

    本篇文章主要介紹了React組件內(nèi)事件傳參實(shí)現(xiàn)tab切換的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07

最新評(píng)論

长垣县| 温泉县| 金昌市| 霍林郭勒市| 平舆县| 连城县| 桐城市| 桦南县| 浦北县| 霍林郭勒市| 静海县| 泸西县| 兴安县| 深州市| 长沙县| 通州区| 名山县| 康保县| 茌平县| 福泉市| 静海县| 闸北区| 新乡市| 花垣县| 东阳市| 榆中县| 高雄县| 新邵县| 仁布县| 临安市| 桂东县| 治县。| 来宾市| 清河县| 烟台市| 招远市| 金门县| 东平县| 沛县| 方城县| 河南省|