react中的受控组件和非受控组件

这篇具有很好参考价值的文章主要介绍了react中的受控组件和非受控组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在React中,受控组件和非受控组件是两种处理表单输入的方式。

1. 受控组件

受控组件是指由React控制并维护其状态的组件。这意味着表单输入的值由组件的state属性来管理,每次值发生变化时都会更新state。要更新受控组件的值,需要通过onChange事件处理函数来更新state,然后再将新的值传递给组件。使用受控组件时,表单的值始终与组件的状态同步,可以方便地对输入进行验证或操作。

例如,以下代码演示了一个受控组件的例子:

import React, { useState } from 'react';

const ControlledComponent = () => {
  const [inputValue, setInputValue] = useState('');

  const handleChange = (event) => {
    setInputValue(event.target.value);
  };

  return (
    <input type="text" value={inputValue} onChange={handleChange} />
  );
};

你可以将 React 中的受控组件与 Vue 中的表单的 v-model 进行类比。在 React 中,受控组件通过将表单元素的值绑定到组件的状态(state)来实现数据的双向绑定。当用户输入内容时,React 会更新组件的状态,从而更新表单元素的值。这样,你可以轻松地对表单的值进行控制和处理。

类似地,Vue 中的表单的 v-model 也实现了数据的双向绑定。通过将组件的数据绑定到表单元素的值,当用户输入内容时,Vue 会自动更新组件的数据,反之亦然。

因此,你可以将 React 中的受控组件与 Vue 中的表单的 v-model 视为在不同框架中实现表单的双向绑定的相似机制。

2. 非受控组件

非受控组件则将控制权交给了DOM本身,并不维护其输入值的状态。通过使用ref属性来访问DOM节点,可以在需要时获取表单输入的当前值。这样,无论用户输入如何,React并不会追踪或控制输入的值。非受控组件通常更适用于简单的表单输入或对实时输入不进行表单验证的情况。

以下是一个非受控组件的示例:

import React, { useRef } from 'react';

const UncontrolledComponent = () => {
  const inputRef = useRef();

  const handleClick = () => {
    console.log(inputRef.current.value);
  };

  return (
    <div>
      <input type="text" ref={inputRef} />
      <button onClick={handleClick}>Submit</button>
    </div>
  );
};

需要注意的是,受控组件和非受控组件各有其适用场景,具体使用哪种方式取决于项目需求和个人偏好。文章来源地址https://www.toymoban.com/news/detail-741407.html

到了这里,关于react中的受控组件和非受控组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • React从入门到实战-事件处理,受控组件与非受控组件

    事件处理 通过onXxx属性指定事件处理函数(注意大小写) React使用的是自定义(合成)事件,而不是使用的原生DOM事件——为了更好的兼容性 React中的事件是通过事件委托方式处理的(委托给组件最外层的元素——为了更高效 通过event.target得到发生事件的DOM元素对象 收集表

    2024年02月12日
    浏览(173)
  • 初识React/JSX/组件/state/受控组件

                                               

    2024年02月12日
    浏览(60)
  • React之组件的分类、使用,事件对象,this指向问题,修改状态以及受控组件与非受控组件

    组件是 React 开发(现代前端开发)中最重要的内容 组件允许你将 UI 拆分为独立、可复用的部分,每个部分都可以独立的思考 组合多个组件(组装乐高积木)实现完整的页面功能 特点:独立、可复用、可组合 组件包含三部分:HTML/CSS/JS 展示页面中的可复用部分 函数组件:使

    2024年02月16日
    浏览(44)
  • 深入探讨React受控组件的表单处理

    React中的受控组件是一种通过React状态管理表单元素值的方式。在这篇博客中,我们将深入探讨受控组件的使用,通过一个登录表单实例,了解其优势、实现方式以及在实际项目中的应用。 在React中,受控组件是由React状态管理表单元素值的一种形式。通过React的状态(state)来

    2024年01月25日
    浏览(54)
  • 【react从入门到精通】React父子组件通信方式详解(有示例)

    【分享几个国内免费可用的ChatGPT镜像】 【10几个类ChatGPT国内AI大模型】 【用《文心一言》1分钟写一篇博客简直yyds】 【用讯飞星火大模型1分钟写一个精美的PPT】 在上一篇文章《JSX详解》中我们了解了什么是jsx以及jsx的语法规则。 本文中我们将详细了解React父子组件通信方式

    2024年02月05日
    浏览(92)
  • JavaScript从入门到精通系列第二十七篇:详解JavaScript中的包装类

      文章目录 前言 一:包装类 1:包装类作用 2:包装类成员 3:包装类作用 4:包装类使用         包装类就类似于把一个草根包装成一个明星,就类似于Java中的Integer。         JavaScript中的基本数据类型String Number Boolean Null Undefined         引用数据类型:Object         J

    2024年02月06日
    浏览(42)
  • JavaScript系列从入门到精通系列第十七篇:JavaScript中的全局作用域

    文章目录 前言 1:什么叫作用域 一:全局作用域 1:全局变量的声明 2:变量声明和使用的顺序 3:方法声明和使用的顺序         可以起作用的范围         我们的作用域只有全局作用域和函数作用域。          直接编写到Script里边的代码,就是全局作用域。全局作用域

    2024年02月06日
    浏览(42)
  • JavaScript从入门到精通系列第二十八篇:详解JavaScript中的字符串的方法

      文章目录 前言 一:String中的方法 1:获取字符串的长度 2:返回指定位置的字符 3:返回指定位置的字符Unicode编码 4:返回指定位置的字符Unicode编码  二:比较常用的 1:连接两个字符串 2:检索一个字符串中指定内容  3:从后检索一个字符串中指定内容   4:截取字符串

    2024年02月06日
    浏览(53)
  • 前端react入门day02-React中的事件绑定与组件

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 React中的事件绑定 React 基础事件绑定 使用事件对象参数  传递自定义参数  同时传递事件对象和自定义参数  React中的组件  组件是什么 React组件 useState  修改状态的规

    2024年02月06日
    浏览(85)
  • JavaScript从入门到精通系列第三十一篇:详解JavaScript中的字符串和正则表达式相关的方法

      文章目录 知识回顾 1:概念回顾 2:正则表达式字面量 一:字符串中正则表达式方法 1:split 2:search 3:match 4:replace         正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式检查一个字符串是否符合规则,或者将字符串中符合规则的内容提取出来。

    2024年01月17日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包