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

React 高阶组件 和 受控组件

一、非受控组件

       受控组件是指组件的状态由自定义状态控制,可以通过修改状态来影响组件。

       非受控组件是指一些原生组件,如input,checkbox,由dom元素自己的属性控制。

1.1 受控组件demo
const Input = (value,handleChange)=>{
    return (
        <input value={value} onChange={handleChange} />
    )
}

二、高阶组件

        高阶组件是装饰设计模式,给传入的组件添加某种功能。

2.1 高阶组件demo
const Input = (value, handleChange) => {
    return (
        <input value={value} onChange={handleChange}/>
    )
}

function WrappingLoading(Component, loadFunc) {
    const [loading, setLoading] = useState(true)
    useEffect(() => {
        loadFunc()
        setLoading(false)
    }, []);
    return loading ? <div>loading</div> : <Component/>
}

export const LoadingInput = (value, handleChange, loadFunc) => {
    var Component = <Input value={value} handleChange={handleChange}/>
    return WrappingLoading(Component, loadFunc)
}


http://www.kler.cn/a/300886.html

相关文章:

  • 1.8 GPT-4:开创人工智能的新纪元
  • Web3与加密技术的结合:增强个人隐私保护的未来趋势
  • C++算法第十六天
  • arcgis中生成格网矢量带高度
  • 【C#深度学习之路】如何使用C#实现Yolo8/11 Segment 全尺寸模型的训练和推理
  • 【Unity】unity3D 调用LoadSceneAsync 场景切换后比较暗 部门材质丢失
  • 基于SpringBoot+Vue的古诗词学习软件系统
  • 单线程 TCP/IP 服务器和客户端的实现
  • C++ 在项目中使用Linux命令
  • solidity学习-15异常
  • 【CSS】 Grid布局:现代网页设计的基石
  • DML(Data Manipulation Language,数据操作语言)
  • Kubernetes上安装Metallb和Ingress并部署应用程序
  • 本地安装Ollama+WebUI
  • 大模型实战教程:使用Langchain与ChatGLM实现本地知识库
  • Linux驱动.之驱动开发思维,设备,驱动,总线分析思想,驱动的分类(字符设备,块设备,网络设备)
  • 多线程和高并发-17题
  • 使用 Homebrew 在 macOS 上安装 Conda
  • flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位
  • 达林顿管阵列ULN2803(8路反向器电路)
  • C++学习笔记(18)
  • java八股!5(线程创建+并发容器+线程锁)
  • react18基础教程系列--packagejson文件分析
  • “人人都是产品经理”到AI产品经理,赶上风口的人都赚到了钱
  • 「iOS学习」——Masonry学习
  • 区块链学习笔记3--以太坊