web前端全系列 教程
1839个小节阅读:2243.8k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
我们来思考一个问题,使用高阶组件是否可以修改一个不满足当前效果的组件呢?
xxxxxxxxxx
export default function withViewData(WrappedComponent) {
// 修改传入的组件的render函数
WrappedComponent.prototype.render = function () {
return <div>使用高阶组件修改后的界面</div>
};
//返回修改后的组件
return WrappedComponent
}
HOC 不应该修改
传入组件,而应该使用组合的方式,通过将组件包装
来组成新组件
。
HOC 是纯函数,没有副作用。
xxxxxxxxxx
export default function withViewData(WrappedComponent) {
return class extends React.Component {
render(){
return <WrappedComponent data={}/>
}
}
}
提示:
修改传入组件的 HOC 是一种糟糕的抽象方式。
调用者必须知道他们是如何实现的,以避免与其他 HOC 发生冲突。
实时效果反馈
1. 高阶组件应当__参数组件:
A 直接修改
B 组合
答案
1=>B