文章目录

  • 前言
  • 表单中的非受控组件
  • 受控组件
  • 受控组件实践妙用(真实请求Ajax - 模糊查询)
  • 广义上的受控组件
    • 父传子与子传父之间的通信

前言

受控组件有俩种不同的定义:

  • 狭义上我们关注于表单的受控与非受控
  • 而广义上我们将面向全局探讨受控与非受控,也就是React组件的渲染是否被调用者传递的 props 完全控制,控制则为受控组件,否则是非受控组件

表单中的非受控组件

import React, { Component } from 'react';export default class App extends Component {loginRef = React.createRef();render() {return (<section><h1>表单中的非受控组件</h1><form action="#">{/* 非受控组件行为 */}{/* <input type="text" ref={this.loginRef} value="Hello" /> */}{/* 因为这是JSX文本,不是原本的DOM文档,所以这个value值相当于传给input标签一个value值,写死的值 */}<input type="text" ref={this.loginRef} defaultValue="Hello" />{/* defaultValue代表只是代表第一次初始化value值,不去控制后续的更新, 脱离了react的控制 ,直接通过组件的原生DOM节点获取设置value值*/}<br /><buttononClick={() => {console.log(this.loginRef.current.value);}}>Login</button><buttononClick={() => {this.loginRef.current.value = '';}}>重置</button></form></section>);}
}// 什么是非受控组件?
/* React要编写一个非受控组件,可以使用ref来从DOM节点中获取表单数据,就是非受控组件 */

这是一个我已经写完的组件了(从受控表单组件到非受控表单组件的演变),并且之前的 ’错误‘ 注释我并没有删除,我们来看看最初时我们是怎么写这个表单的,我们其实就是想给表单设置一个初始默认值value,原生这样写是完全没有问题的,但是放到 React 中我们发现如果你使用 value 属性来定义默认初始值的话会产生一个奇妙的严重的问题:用户根本无法更改你定义的初始值,这是为什么呢?

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 ...

最新文章

  1. 16S+功能预测发Sciences:尸体降解过程中的微生物组
  2. C++类与static关键字
  3. 首发 | 中间件小姐姐直播“带货”——阿里程序员必知的插件
  4. XML解析之JAXP案例详解
  5. [C++学习历程]基础部分 C++中的函数学习
  6. 织梦直接往数据库写入数据
  7. VC预处理指令与宏定义的妙用
  8. 20.有效的括号(力扣leetcode) 博主可答疑该问题
  9. 数学分析 反函数存在性定理,连续性定理与求导定理
  10. Web入门之VScode连接数据库sql server(超详细)
  11. 狄克斯特拉算法——python实现
  12. involution内卷
  13. Linux SPI 驱动
  14. Zookeeper客户端网络通讯模型分析
  15. selenium 警告框处理
  16. 服务器无限刷钱bug,魔兽世界怀旧服出现“重大”刷金币BUG,分线的负面影响来的太快...
  17. 怎么在计算机网络广播中发话,如何用电脑发网络传真?手把手教大家具体操作步骤...
  18. Redis集群使用指南
  19. 【VBA(八):在VBA中使用公式】【工作表函数+VBA函数+小结】
  20. C++标准程序库(学习笔记)

热门文章

  1. transform的高级用法
  2. 夜读2013年度国家信息技术研发选题申报有感
  3. hello I'm coming
  4. 计算机 推荐信,计算机推荐信范文4篇
  5. Jenkins Role-based用户鉴权插件
  6. Flink:Xmind文档总结
  7. linux下载软件说依赖关系不足,在依赖关系可以满足的情况下也会提示“依赖关系不满足”...
  8. bracket怎么新建HTML,Adobe Brackets如何安装 网页前端编辑器Brackets怎么用
  9. 【CSDN编程挑战赛第六期—参赛体验+思路】
  10. python 气泡图 聚类_10大Plotly数据可视化美图及工具介绍