当前位置: 首页 > news >正文

受控制组件与非受控组件

本文以react框架为例,都是以我的大白话叙述的,嘿嘿

受控组件

当一个view的数据来源于data,同时data的数据受到view的改变,这个组件就是受控组件,简单的就像数据双向绑定
对于一个input来说

const [name,setName]=useState("");
...<input value={name} onChange={(e)=>{setName(e.target.value.toUpperCase())}}/>  

这个就是受控组件,当你输入lb他显示的时LB

非受控组件

这个就是上面的例子中input没有onChange事件,虽然数据确实来自data,但是却不改变data,可以有用户指定写某个函数控制行为。

const [name,setName]=useState("");const input=useRef<HTMLInputElement>(null)
...
function handel(){cosole.log(ref.current.value)
}...<input value={name} ref={input}/>  

受控组件与非受控组件的区别

意义

  • 受控组件的状态受到组件的state状态改变
  • 非受控组件的状态不受应用状态大的改变,应用中也多了局部组件状态

性能

在受控组件中,每次表单的值发生变化时,都会调用一次 onChange 事件处理器,这确实会
有一些性能上的损耗。虽然使用非受控组件不会出现这些问题,但仍然不提倡在 React 中使用非
受控组件。这个问题可以通过 Flux/Redux 应用架构等方式来达到统一组件状态的目的。


http://www.mrgr.cn/news/66539.html

相关文章:

  • DiskGenius工具扩容Mac OS X Apple APFS分区
  • VSCode 1.82之后的vscode server离线安装
  • python操作MySQL以及SQL综合案例
  • Python酷库之旅-第三方库Pandas(192)
  • 提高交换网络可靠性之链路聚合
  • 如何利用低代码开源框架实现高效开发?
  • 基于Matlab的语音识别
  • 苍穹外卖 各状态的订单数量统计
  • 【拥抱AI】如何让软件开发在保证数据安全的同时更加智能与高效?
  • 使用 Visual Studio Installer 彻底卸载 Visual Studio方法与下载
  • MySQL事务管理
  • window 利用Putty免密登录远程服务器
  • 读代码题 错题集
  • C++:unordered_set、unordered_map类
  • [CKS] K8S Admission Set Up
  • C语言进阶:二.数据的存储(2)
  • js WebAPI黑马笔记(万字速通)
  • Java基础-JDBC
  • 教育机构如何利用知识中台进行数字教学
  • 【学习日常】导热方式计算,物体导热计算,小白方式计算导热量,导热胶的正确选择
  • 【C++之STL】一文学会使用 string
  • 【专属情侣空间】不懂技术,不懂代码,你也可以拥有专属的情侣空间了
  • 双指针算法篇——一快一慢须臾之间解决问题的飘逸与灵动(2)
  • triangle_area_calculators库发布
  • 进程信号——信号的保存
  • 聚划算!Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测