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

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

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

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

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

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

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

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

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

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 進(jìn)入頁面以后自動(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)入頁面以后自動(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)入頁面以后自動(dòng) focus 到某個(gè)輸入框的文章就介紹到這了,更多相關(guān)React 自動(dòng) focus 輸入框內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

    在開發(fā)React應(yīng)用時(shí),嚴(yán)格模式StrictMode可以幫助開發(fā)者捕捉到組件中的錯(cuò)誤和潛在問題,安裝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用來用來模擬真實(shí)tooltip,通過鼠標(biāo)移入移出事件控制真實(shí)tooltip的顯示與隱藏,需要的朋友可以參考下
    2023-05-05
  • react如何獲取URL中參數(shù)

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

    這篇文章主要介紹了react如何獲取URL中參數(shù)問題,具有很好的參考價(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 中,可以通過 JavaScript 的條件語句來動(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?的作用,文章圍繞主題展開詳細(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切換的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07

最新評(píng)論

桦南县| 民勤县| 佛山市| 定远县| 金川县| 海宁市| 虹口区| 永宁县| 师宗县| 哈尔滨市| 双流县| 珲春市| 乌拉特中旗| 丰镇市| 京山县| 姚安县| 新河县| 长寿区| 临泽县| 杭锦旗| 射阳县| 长沙市| 榕江县| 南京市| 承德县| 孙吴县| 海安县| 太和县| 出国| 宕昌县| 土默特右旗| 利辛县| 麻城市| 神池县| 汉阴县| 屏东市| 湘潭市| 铜陵市| 尼玛县| 黄冈市| 布尔津县|