React官网学习实践 - 组合 vs 继承

作者: 张中华 | 来源:发表于2018-11-17 20:47 被阅读51次

React 具有强大的组合模型,我们建议使用组合而不是继承来复用组件之间的代码。

包含关系

一些组件不能提前知道它们的子组件是什么。这对于 Sidebar 或 Dialog 这类通用容器尤其常见。
我们建议这些组件使用 children 属性将子元素直接传递到输出。
实例:



code:

import React, { Component } from 'react';
import './App.css';

function FancyBorder(props) {
    return (
        <div className={'FancyBorder FancyBorder-' + props.color} style={{color:props.color}}>
            {props.children}
        </div>
    );
}

class App extends Component {
    constructor(props) {
        super(props);
    }
    render() {
        return (
            <FancyBorder color="blue">
                <h1 className="Dialog-title">
                    Welcome
                </h1>
                <p className="Dialog-message">
                    Thank you for visiting our spacecraft!
                </p>
            </FancyBorder>
        );
    }
}

export default App;

继承, 不建议使用!!!

在 Facebook 网站上,我们的 React 使用了数以千计的组件,然而却还未发现任何需要推荐你使用继承的情况。

属性和组合为你提供了以清晰和安全的方式自定义组件的样式和行为所需的所有灵活性。请记住,组件可以接受任意元素,包括基本数据类型、React 元素或函数。

相关文章

  • React官网学习实践 - 组合 vs 继承

    React 具有强大的组合模型,我们建议使用组合而不是继承来复用组件之间的代码。 包含关系 一些组件不能提前知道它...

  • React

    React 《React 官网文档》 React简介 React概念 React官网学习实践 - jSX简介 Re...

  • react 组合vs继承

    react 提倡使用组合而不是继承来复用代码,具体原因呢,我现在还不知道-_-!好,先看看什么情况下我们会用到组合...

  • React组合 vs 继承

    组合 React 有十分强大的组合模式。我们推荐使用组合而非继承来实现组件间的代码重用。有些组件无法提前知晓它们子...

  • 九. React的组合 VS 继承(Composition vs

    React 拥有一个强大的组合模型,官网建议使用组合而不是继承以实现代码的重用。 一. 包含 一些组件在设计前无法...

  • React HOC

    在React官网文档学习React HOC,整个看了一遍还是云里雾里的,于是按照官网文档,自己动手实践一下。官网地...

  • (四)react组合 vs 继承

    React 有十分强大的组合模式。我们推荐使用组合而非继承来实现组件间的代码重用1、组件使用一个特殊的 child...

  • React官网学习实践 - React安装

    创建一个新的APP 2.如果您安装了npm 5.2.0以以上版本的话,您可以使用npx作为一个更好的选择。 安装 ...

  • React官网学习实践 - 表单

    HTML表单元素与React中的其他DOM元素有所不同,因为表单元素生来就保留一些内部状态。例如,下面这个表单只接...

  • React笔记11(组合 vs 继承)

    React具有强大的组合模型,我们建议使用组合而不是继承来复用组件之间的代码。 本章节中,将围绕几个React新手...

网友评论

    本文标题:React官网学习实践 - 组合 vs 继承

    本文链接:https://www.haomeiwen.com/subject/mxvifqtx.html