react受控组件、非受控组件以及高阶组件
受控组件
组件的state是“唯一数据源”,使用受控组件时必须要绑定onchange()函数,否则会警告。
通俗来讲:就是input的vlaue值是来源于组件的state,相当于是映射,并且用户输入或改变值会触发this.setState来改变state值。
- input
- textarea
- select
用途:
- 输入框默认值
//一个简单的例子
handleChange(event){this.setState({value: event.target.value});
}
<input type="text" value = {this.state.value} onchange = {this.handleChange}/>
非受控组件
非受控组件即不受状态的控制,获取数据就是相当于操作DOM。
- 文件 input 标签
高阶组件
React 中用于复用组件逻辑的一种高级技巧
高阶组件参数是组件,返回值是新组件的函数。
组件是将props转换为UI
高阶组件是将组件转换为另一个组件
注意:不会修改传入的组件,返回值是一个新的组件
实现高阶组件:
- 属性代理
//一个简单的高阶组件
function myHOC() {return function(WrappedComponent) {class TheHOC extends React.Component {render() {return <WrappedComponent {...this.props} />;}}return TheHOC;}
}
功能:
- 可以操作props,实现增删改查
- 抽取状态
- 包装组件
- 反向继承
export default WrappedComponent => class extends WrappedComponent {render() {console.log(this.state, 'state');return super.render();}
}
功能:
- 渲染劫持
react受控组件、非受控组件以及高阶组件相关推荐
- React(精读官方文档) - 高级指引 -高阶组件
高阶组件(HOC) 概述 是React复用组件逻辑的一种高级技巧,是一种基于React组合特性而形成的设计模式 高阶组件是参数为组件,返回值为新组件的函数 简单理解: 高阶组件本身是 函数,传参数是组 ...
- [react] 写一个react的高阶组件并说明你对高阶组件的理解
[react] 写一个react的高阶组件并说明你对高阶组件的理解 定义高阶组件 import React, { Component } from 'react';const simpleHoc = ...
- react 给一个引用的组件添加新属性_高阶组件在React中的应用
高阶组件的定义 接受React组件作为输入,输出一个新的React组件. 概念源自于高阶函数,将函数作为参数,或者输出一个函数,如map,reduce,sort. 用haskell的函数签名来表示: ...
- react进阶系列 - 高阶组件详解四:高阶组件的嵌套使用
前面有讲到过很多页面会在初始时验证登录状态与用户角色.我们可以使用高阶组件来封装这部分验证逻辑.封装好之后我们在使用的时候就可以如下: export default withRule(Home); 但 ...
- React中的高阶组件
React中的高阶组件 高阶组件HOC即Higher Order Component是React中用于复用组件逻辑的一种高级技巧,HOC自身不是React API的一部分,它是一种基于React的组合 ...
- React 高阶组件HOC详解
参考链接: https://juejin.cn/post/6844903815762673671 https://juejin.cn/post/6844904050236850184 前言 高阶组件与 ...
- web前端高级React - React从入门到进阶之高阶组件
第二部分:React进阶 系列文章目录 第一章:React从入门到进阶之初识React 第一章:React从入门到进阶之JSX简介 第三章:React从入门到进阶之元素渲染 第四章:React从入门到 ...
- React 中的高阶组件及其应用场景
本文目录 什么是高阶组件 React 中的高阶组件 属性代理(Props Proxy) 反向继承(Inheritance Inversion) 高阶组件存在的问题 高阶组件的约定 高阶组件的应用场景 ...
- React高阶组件以及应用场景
什么是高阶组件 在解释什么是高阶组件之前,可以先了解一下什么是 高阶函数,因为它们的概念非常相似,下面是 高阶函数 的定义: 如果一个函数 接受一个或多个函数作为参数或者返回一个函数 就可称之为 高阶 ...
- React解密:React高阶组件是什么?
React中比较高大上的东西,高阶组件应该算是一个点,开发中也许写的不多,但是我们必须要直到高阶组件是什么,高阶组件能干什么? A higher-order component is a functi ...
最新文章
- 让 QtWebkit 支持跨域CROS - nowboy的CSDN博客 - 博客频道 - CSDN.NET
- 高通5G开始挤牙膏?骁龙865+发布,性能小幅提升,一加听了要笑,魅族看了会流泪...
- hbase delete.deleteColumns问题
- Excel 设定密码保护特定的内容
- WEB前端学习一 JS预解释
- ASP.NET Core 2.0 Web API项目升级到ASP.NET Core 3.0概要笔记
- ROS配置分布式通信
- 如何制作出色的R可重现示例
- 新型超级生物计算机简介,自然形成的超级生物计算机
- ROS安装USB摄像头
- 军工产品检验标准有哪些?军工产品检测机构报告
- 60、在Visual Studio 2019 环境下,使用C#调用C++生成的dll实现yolov5的图片检测
- 计算机网络(二)—— 物理层(1、2、3):物理层的基本概念、物理层的下面的传输媒体、传输方式
- 积分上限函数的导数例题 笔记
- 2019杭电多校Problem 5 Snowy Smile题解
- 在android view中写坦克大战
- 如何触发‘isTrusted = true‘点击事件
- Git 常用命令及解释
- flashback使用
- MYSQL服务器登录和权限设置
热门文章
- Excel一键生成工资条的另类操作
- 什么是渐进增强_什么是渐进增强,为何如此重要
- C语言 —— 嵌套循环语句的用法
- 如何更改iTunes备份地址(修改iphone ipad 备份地址) itunes文件目录修改方法 【亲测有效,附带原理说明】...
- riscv-sodor 学习笔记
- riscv的c语言编译,RiscV汇编介绍(1)-编译过程
- Echarts-wordcloud词云图使用及自定义图片
- LP3THW 练习、学习训练、个人小结 Exercise_3
- 朗润国际期货,电动汽车与电动自行车,哪个更快乐?
- 26场景优化 27UV贴图