React-render props模式

React 中组件复用主要有两种模式,一种是高阶组件另一种就是 render props 模式这两种方式并不是新的 API ,而是利用 React 自身特点的编码技巧,演化而来的固定模式render props 模式是一种非常灵活并且复用性非常高的模式,可以将一些特定的行为或功能封装成一个组件供别的组件使用。主要实现思路:将要复用的 state 状态和操作 state 的方法封装到一个...
摘要由CSDN通过智能技术生成

React 中组件复用主要有两种模式,一种是高阶组件另一种就是 render props 模式

这两种方式并不是新的 API ,而是利用 React 自身特点的编码技巧,演化而来的固定模式

render props 模式是一种非常灵活并且复用性非常高的模式,可以将一些特定的行为或功能封装成一个组件供别的组件使用。

主要实现思路:

  1. 将要复用的 state 状态和操作 state 的方法封装到一个组件中

  2. 使用 复用组件 时为其传递一个函数,通过这个函数来获取 复用组件 中的 state (将 state 暴露到 复用组件的外部)

  3. 这个函数的返回值为需要渲染的 UI 内容(渲染的 DOM 结构由传入的函数决定)

举个例子:比如将获取鼠标的坐标、鼠标移动事件封装成一个可复用组件

import React from 'react'
import ReactDOM from 'react-dom'
import PropTypes from 'prop-types'

import img from './images/tianshi.gif'

// 根组件
class App extends React.Component {
   
  render () {
   
    return (
      <div>
        <h1>App 组件</h1>
        {
   /* 使用 Mouse 组件1,通过 render 属性提供一个函数,函数的返回值为 DOM 结构 */}
        <Mouse render={
   mouse => (
          <div>
            <p>X坐标:{
   mouse.x}Y坐标:{
   mouse.y}</p>
          </div>
        )} />
        
        {
   /* 使用 Mouse 组件2 */}
        <Mouse render={
   mouse => (
          <img
            src={
   img}
            alt="cat"
            sty
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值