React中如何使用高阶组件
发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,本文小编为大家详细介绍"React中如何使用高阶组件",内容详细,步骤清晰,细节处理妥当,希望这篇"React中如何使用高阶组件"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
千家信息网最后更新 2024年12月12日React中如何使用高阶组件
本文小编为大家详细介绍"React中如何使用高阶组件",内容详细,步骤清晰,细节处理妥当,希望这篇"React中如何使用高阶组件"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
是什么
高阶组件是一个函数,能够接受一个组件并返回一个新的组件。没有任何副作用。
为什么用
封装并抽离组件的通用逻辑,让此部分逻辑在组件间更好地被复用。
如何用
//hoc为我们的高阶组件,可以使用es7装饰器语法来使用高阶组件//当然也可以不用es7,如:let hocHello = hoc(Hello),只是es7的语法更优雅一些。//高阶组件可以叠加使用,可以对一个组件使用多个高阶组件@hoc class Hello extends React.Component { //}
如何实现
属性代理
下面的例子是最简单的一个实现
function hoc(ImportComponent) { return class Hoc extends React.Component { static displayName = `Hoc(${getDisplayName(ImportComponent)})` //displayName是设置高阶组件的显示名称 render() { return} }}function getDisplayName(Component) { return Component.displayName || Component.name || "Component"}
作用:操作prop,refs获取组件实例
注意事项:静态方法无法传递,必须手动复制;refs无法传递。
反向继承
下面的例子是最简单的一个实现
export function hoc(ImportComponent) { return class Hoc extends ImportComponent { static displayName = `Hoc(${getDisplayName(ImportComponent)})` render() { return super.render() } }}
作用: 操作state;渲染劫持(操作它的render函数)
注意事项:通过继承ImportComponent,除了一些静态方法,包括生命周期,state,各种function,我们都可以得到。
原则
不要修改原组件,高阶组件只是通过组合的方式将子组件包装在容器组件中,是一个无副作用的纯函数。
不要在render方法内部使用高阶组件。
高阶组件可以向组件添加功能,但是不应该大幅度地改变功能。
为了方便调试,选择一个显示名称,表示它是高阶组件的结果。
读到这里,这篇"React中如何使用高阶组件"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
组件
高阶
函数
文章
方法
事项
作用
例子
内容
功能
只是
名称
注意事项
语法
逻辑
静态
面的
妥当
优雅
不用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
国安会网络安全协调官
通过网络技术服务 金融
美国网络安全专家泰普顿
今日简报网络安全
网络安全教育整治实施方案
server数据库安装
企业云平台软件开发
药品临床试验数据库锁定
控制应用联网的软件开发
数据库怎么改utf-8
订酒店软件开发
自建服务器模拟商用
物理服务器在创建D盘
重庆唐森网络技术有限公司
三国群英传选哪个服务器
csgo社区服务器换皮肤代码
我的世界烟雨江南服务器戒尺
怎么不用网易进服务器
服务器防挖矿程序
数据库管理系统能实现
上海网络技术咨询服务
方直科技与中国互联网
服务器上的NMI什么按键
项目部网络安全周活动总结
没有网提示dns服务器未响应
汽车驾驶人网络安全教育
数据库多个表的相同字段
学校领导网络安全讲话提纲
在keil5中如何更改数据库
云平台网络安全措施