react_RenderProps_初识与尝试

本文介绍了Render Props技术,通过一个自定义TitleCard组件的示例展示其用法。Render Props允许组件间共享代码,避免props混乱和命名冲突。文章讨论了与Higher-Order Components (HOCs)的对比,并提醒在React.PureComponent中使用Render Props可能的性能问题及其解决方案。
摘要由CSDN通过智能技术生成

Render Props

参考:react中文文档-Render Props
参考:(译) 使用 Render props 吧!

  本人理解:render props 即 父组件使用一个值是函数的props来在组件间共享代码,函数返回子组件;父组件不实现那一部分的渲染逻辑,交给函数中的子组件实现。相当于子组件通过父组件暴露的函数嵌入到父组件的某个特定位置。
  目前已知正在使用render props的库: React RouterDownshift
  光说概念解释不清,本人看官网的例子也不是完全明白,官网猫和老鼠的例子不太亲民。本人在本博客中自己尝试写一个render props。

怎么实现 render props?

demo地址:https://github.com/SwordHarry/react-renderProps

TitleCard

  目前在页面上有多个带有标题的卡片,简略样式如下:
TitleCard
红色标题头:左边一个标题文字,右边一个可点击的 more 查看更多;标题文字是变化的,点击查看更多的事件是变化的。
蓝色内容:内容完全可自定义。
总之页面上出现多处这样的带有标题的卡片,dom结构很类似。
现我们尝试用 render props 方式封装。

红色标题头:HeaderCard
import React, {
   Fragment} from 'react';
import './index.css';

function HeaderCard(props) {
   
    const {
    title, moreText, clickEvent } = props;
    const clickHandler = () => {
   
        if (typeof clickEvent === 'function') {
   
            clickEvent();
        }
    }
    return (
        <Fragment
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值