react受控组件与非受控组件区别在于:

  1. 受控组件中输入框的值由其change事件接管,做对应的数据劫持操作,例如可以对输入框的值进行合法输入校验(匹配正则),此时表单数据由 React 组件来管理(“受开发者控制”)。
    步骤:
    a.创建一个state值绑定在输入框的value上;
    b.输入框绑定change事件传入事件e;
    c.change事件中得到输入框的值然后赋值改变state值;
    d.数据组装提交到后台;
import axios from "axios";
import React, { useState, useEffect } from "react";function ControlledComponent() {const [userName, setUsername] = useState("小明");function doSumbit() {const data = {name: userName,};console.log(data)axios("xxx", data);}useEffect(() => {console.log(userName);}, [userName]);return (<><input value={userName} onChange={(e) => {setUsername(e.target.value);} }></input><button onClick={doSumbit}>提交</button></>);
}
export default ControlledComponent;
  1. 非受控组件则是同过ref直接获取输入框的值,只获取到最后状态的结果值,在输入过程中做不到对输入值的操作,此时表单数据将交由 DOM 节点来处理(“不受开发者控制”)。
    步骤:
    a.创建一个ref实例绑定到输入框的ref上;
    b.通过ref.current.value获取输入框的值进行数据组装提交到后台;
import axios from "axios";
import React, { useRef } from "react";function NotControlledComponent() {const inputRef = useRef();function doSumbit() {const data = {name: inputRef.current.value,};console.log(data);axios("xxx", data);}return (<><input ref={inputRef}></input><button onClick={doSumbit}>提交</button></>);
}
export default NotControlledComponent;

注:本文使用的react hooks 写的例子,详情参考官网:在大多数情况下,我们推荐使用 受控组件 来处理表单数据

react受控组件与非受控组件相关推荐

  1. [react] 受控组件和非受控组件有什么区别?

    [react] 受控组件和非受控组件有什么区别? 受控组件用value和组件的state绑定,当value更新时,会自动更新state 非受控组件没有value,采用ref直接操作dom 个人简介 我 ...

  2. 深入react技术栈(10):受控组件和非受控组件

    我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号关注前端小歌谣 受控组件 非受控组件 受控组件和非受控组件的区别 文章参考深入React技术栈

  3. React中受控组件和非受控组件

    受控组件 在React中,每当表单的状态发生变化时,都会被写入到组件的state中,这种组件在React被称为受控组件.受控组件中,组件渲染的状态与它的value或者checked相对应.React通 ...

  4. React 之受控组件和非受控组件

    在React中,所谓受控组件和非受控组件,是针对表单而言的. 表单受控组件 表单元素依赖于状态,表单元素需要默认值实时映射到状态的时候,就是受控组件,这个和双向绑定相似. 受控组件,表单元素的修改会实 ...

  5. 【React】之受控组件和非受控组件

    React中的组件根据是否受React控制可分为受控的和非受控的. 一.受控组件 表单元素依赖于状态,表单元素需要默认值实时映射到状态的时候,就是受控组件,这个和双向绑定相似. 受控组件,表单元素的修 ...

  6. React的受控组件和非受控组件

    一.受控组件 表单元素依赖于状态,表单元素需要默认值实时映射到状态的时候,就是受控组件,这个和双向绑定相似. 受控组件,表单元素的修改会实时映射到状态值上,此时就可以对输入的内容进行校验. 受控组件只 ...

  7. 【React】知识点归纳:受控组件与非受控组件区别

    React: 受控组件与非受控组件区别 受控组件 示范代码: 原理图: 非受控组件 示范代码: 结论 受控组件 在HTML中,标签<input>.<textarea>.< ...

  8. 什么是React受控组件和非受控组件

    React是一个非常流行的JavaScript库,用于构建Web应用程序.React中有两种类型的组件,受控组件和非受控组件.在本文中,我们将深入研究这两种组件的区别,优缺点以及如何选择适当的组件类型 ...

  9. React 的受控组件和非受控组件有什么不同

    大家好,我是前端西瓜哥,今天我们来看看 React 的受控组件和非受控组件有什么不同. 受控组件 受控组件,指的是将表单元素的值交给组件的 state 来保存. 例子: import './style ...

  10. react——非受控组件和非受控组件的应用

    非受控组件和非受控组件的应用 什么是非受控组件: 非受控组件:它应用的次数没有受控组件多,在工作中,多数使用为受控组件 非受控组件:表单项中的value或checked值,它不受state中的属性控制 ...

最新文章

  1. 用window.open在同一个新窗口中访问指定url【IE页面缓存问题】
  2. 中班科学计算机,幼儿园中班科学课件:《照镜子》
  3. [pytorch、学习] - 4.4 自定义层
  4. 获取元素大小和位置的方式
  5. Spring 官宣,干掉原生 JVM!
  6. [Tips] WSL ubuntu 18.04 安装python3
  7. Java运行环境的配置(JDK和JRE)
  8. VS2015安装教程
  9. Ubuntu 安装 wine 和 TIM
  10. 像中文的罗马音字体复制_罗马音字体复制下载
  11. 404 not found是什么意思
  12. 代理ip填写格式有什么要求?
  13. Sql Server Report Builder 计算标准偏差
  14. WIN7 64 安装串口驱动和mini2440USB驱动
  15. 蓝桥杯 算法提高 ADV-143 扶老奶奶过街 逻辑推理
  16. Objective-C简介
  17. python写文件自动换行_python怎么换行继续写脚本
  18. ZJU PAT的一些代码
  19. Guid的生成和数据修整(去除空格和小写字符)
  20. Qt的工程组织-.pro、.pri、.prf、.prl

热门文章

  1. 顺序表的实现[原创]
  2. 奇淫巧技,springboot 全局日期格式化处理,有点香!
  3. C语言精心总结(附有博客)
  4. python开发工具pycharm使用简介
  5. 用模板建站建一个公司官网好吗?
  6. 浅谈typeid().name()获取类型名
  7. vscode 常用插件(自用)
  8. VS2017Enterprise 离线安装
  9. ClickHouse镜像在阿里云镜像站首发上线
  10. java判断一个字符串是否为空或空字符串(四种方法)