iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > 其他 >react中怎么设置focus
  • 124
分享到

react中怎么设置focus

React 2023-05-14 22:05:16 124人浏览 八月长安
摘要

本教程操作环境:windows10系统、React18.0.0版、Dell G3电脑。react中怎么设置focus?React 进入页面以后自动 focus 到某个输入框在 React.js 当中你基本不需要和 DOM 直接打交道。Rea

react中怎么设置focus

教程操作环境:windows10系统、React18.0.0版、Dell G3电脑。

react中怎么设置focus?

React 进入页面以后自动 focus 到某个输入框

eb1b47ae82a8551474d8ede8fc072da.jpg

在 React.js 当中你基本不需要和 DOM 直接打交道。React.js 提供了一系列的 on* 方法帮助我们进行事件监听,所以 React.js 当中不需要直接调用 addEventListener 的 DOM api;以前我们通过手动 DOM 操作进行页面更新(例如借助 Jquery),而在 React.js 当中可以直接通过 setState 的方式重新渲染组件,渲染的时候可以把新的 props 传递给子组件,从而达到页面更新的效果。

React.js 这种重新渲染的机制帮助我们免除了绝大部分的 DOM 更新操作,也让类似于 jQuery 这种以封装 DOM 操作为主的第三方的库从我们的开发工具链中删除。

但是 React.js 并不能完全满足所有 DOM 操作需求,有些时候我们还是需要和 DOM 打交道。比如说你想进入页面以后自动 focus 到某个输入框,你需要调用 input.focus() 的 DOM API,比如说你想动态获取某个 DOM 元素的尺寸来做后续的动画,等等。

React.js 当中提供了 ref 属性来帮助我们获取已经挂载的元素的 DOM 节点,你可以给某个 JSX 元素加上 ref属性。

可以看到我们给 input 元素加了一个 ref 属性,这个属性值是一个函数。当 input 元素在页面上挂载完成以后,React.js 就会调用这个函数,并且把这个挂载以后的 DOM 节点传给这个函数。在函数中我们把这个 DOM 元素设置为组件实例的一个属性,这样以后我们就可以通过 this.input 获取到这个 DOM 元素。

然后我们就可以在 componentDidMount 中使用这个 DOM 元素,并且调用 this.input.focus() 的 DOM API。整体就达到了页面加载完成就自动 focus 到输入框的功能(大家可以注意到我们用上了 componentDidMount 这个组件生命周期)。

我们可以给任意代表 html 元素标签加上 ref 从而获取到它 DOM 元素然后调用 DOM API。但是记住一个原则:能不用 ref 就不用。特别是要避免用 ref 来做 React.js 本来就可以帮助你做到的页面自动更新的操作和事件监听。多余的 DOM 操作其实是代码里面的“噪音”,不利于我们理解和维护。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 进入页面以后自动 focus 到某个输入框</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 进入页面以后自动 focus 到某个输入框</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>

以上就是react中怎么设置focus的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: react中怎么设置focus

本文链接: https://www.lsjlt.com/news/206169.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • react中怎么设置focus
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react中怎么设置focus?React 进入页面以后自动 focus 到某个输入框在 React.js 当中你基本不需要和 DOM 直接打交道。Rea...
    99+
    2023-05-14
    React
  • react中如何设置focus
    这篇文章主要介绍了react中如何设置focus的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react中如何设置focus文章都会有所收获,下面我们一起来看看吧。react中设置focus的方法:1、在com...
    99+
    2023-07-04
  • html中focus怎么使用
    本篇内容主要讲解“html中focus怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html中focus怎么使用”吧! 在h...
    99+
    2024-04-02
  • css中:focus-within怎么用
    这篇文章主要为大家展示了css中:focus-within怎么用,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“css中:focus-within怎么用”这篇文章吧。这里我们用:focus-with...
    99+
    2023-06-08
  • CSS中focus-within怎么用
    这篇文章主要介绍CSS中focus-within怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!CSS的世界真是一个神奇的世界。可能众多前端开发者听说过 :focus 并未听说过...
    99+
    2024-04-02
  • react怎么设置div高度
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react怎么设置div高度?react动态设置元素高度使用react实现动态修改样式(不建议使用此方式,除非没有其他选择)如下图所示:需求实现图中的更换...
    99+
    2023-05-14
    React.js
  • css如何为表单元素设置:focus
    这篇文章给大家分享的是有关css如何为表单元素设置:focus的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。为表单元素设置:focus有视力的键盘用户依靠焦点来确定键盘事件在页面中的位置。 使表单元素的焦点脱颖而...
    99+
    2023-06-27
  • css中focus选择器怎么用
    这篇文章主要为大家展示了“css中focus选择器怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css中focus选择器怎么用”这篇文章吧。   css...
    99+
    2024-04-02
  • javascript中focus方法怎么用
    这篇文章主要介绍“javascript中focus方法怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript中focus方法怎么用”文章能帮助大家...
    99+
    2024-04-02
  • react native 删除线怎么设置
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react native 删除线怎么设置?React-Native:删除线样式属性(Style)类型值textDecorationLineenum(枚举)...
    99+
    2023-05-14
    删除线 React
  • css中的focus选择器怎么用
    这篇文章给大家分享的是有关css中的focus选择器怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   focus选择器   :focus选择器被用来指定“表单元素”获...
    99+
    2024-04-02
  • HTML中focus是什么
    这篇文章给大家介绍HTML中focus是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。:focus选择器用于选取获得焦点的元素。:focus是一个伪类,它适用于具有焦点的元素。:focus应用于元素具有焦点的时间内...
    99+
    2023-06-15
  • jquery怎么移除focus
    使用jquery移除focus事件的方法:1.新建html项目,引入jquery;2.创建input输入框;3.为input绑定focus事件;4.添加button按钮,绑定onclick点击事件;5.通过标签名获取input对象,使用un...
    99+
    2024-04-02
  • 怎么使用javascript focus
    本篇内容主要讲解“怎么使用javascript focus”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用javascript focus”吧! ...
    99+
    2024-04-02
  • react native怎么设置页面背景色
    本教程操作环境:Windows10系统、React Native0.67版、Dell G3电脑。react native怎么设置页面背景色?React-Native使用渐变背景色在 CSS 中使用渐变只需要用 linear-gradient...
    99+
    2023-05-14
    react-native
  • css3中focus-within选择器怎么用
    这篇文章主要介绍css3中focus-within选择器怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!伪元素和伪类说到这个,我们先回顾一下,伪类选择器和伪元素选择器,老版的浏览器没有严格区分下面 2 种写法。a...
    99+
    2023-06-08
  • React中如何设置多个className
    目录React设置多个className方法一:ES6 模板字符串 ``方法二:join("")方法三:classnames(需要下载classnames)Rea...
    99+
    2023-01-17
    React className React设置多个className React设置className
  • css样式中focus有什么用
    这篇文章将为大家详细讲解有关css样式中focus有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在css中,focus的意思是“焦点...
    99+
    2024-04-02
  • Vue中的@blur/@focus事件怎么使用
    这篇文章主要讲解了“Vue中的@blur/@focus事件怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue中的@blur/@focus事件怎么使用”吧!Vue的@blur/@fo...
    99+
    2023-07-05
  • CSS的伪类:focus-within怎么用
    本篇内容介绍了“CSS的伪类:focus-within怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作