当前位置: 首页 > 知识库问答 >
问题:

react基于类的组件与java中的类

孙德本
2023-03-14

我是一个新手,我总是想到一个基于类的组件,就像我在Java中做类一样。

在Java中比较基于类的组件和类的两种思维是正确的吗?换句话说,呈现的组件是否像Java中的对象一样,它们是类的实例化?

有区别吗?

共有1个答案

贺跃
2023-03-14

文档中强调的一件重要的事情是,考虑OOP(以及特定的继承)是我们不会像Java那样扩展类。

这是什么意思?让我们从下面的答案中举一个简单的例子:

public class ExtendedButton extends Button {
    public ExtendedButton() {
        super();
        styleProperty().bind(Bindings.
                when(buttonState.isEqualTo(ButtonState.CRITICAL)).
                then("-fx-base: red;").
                otherwise(""));

    }
}

react中的一个例子有两个主要区别。

  • extended按钮将扩展React.Component而不是按钮
  • 因此,您将无法访问按钮。prototype,但您可以使用如下所示的合成

核心引导按钮

class Button extends React.Component {
    render() {
      return (
        <button className=`btn btn-{this.props.btnType}` onClick={this.props.handleClick}>
          { this.props.label} 
        </button>
       )
    }
}

主引导按钮

class PrimaryButton extends React.Component {
    render() {
      return (
        <Button btnType="default" handleClick={this.props.handleClick} label={ this.props.label} />
       )
    }
}

这将是某人开始编写引导按钮的方式。不过,这是简化的,当你理解它时,构图会变得更加有趣。考虑查看留档中关于组合与继承的整篇文章

 类似资料:
  • 在花了一些时间学习React之后,我理解了创建组件的两种主要模式之间的差异。 我的问题是什么时候我应该使用哪一个,为什么?一种方法与另一种方法相比有哪些好处/利弊? ES6类: 功能: 我认为只要没有状态可被该组件操纵,就可以正常工作,但就这样吗? 我想如果我使用任何生命周期方法,最好使用基于类的组件。

  • 问题内容: 在花了一些时间学习React之后,我了解了创建组件的两个主要范例之间的区别。 我的问题是,什么时候应该使用哪个?为什么?一个人相对于另一个人的利益/取舍是什么? ES6课程: 功能性: 我认为只要没有状态可以由该组件操纵,功能就可以了,是吗? 我猜如果我使用任何生命周期方法,最好使用基于类的组件。 问题答案: 你有正确的主意。如果您的组件只做一些道具和渲染,那么功能就可以了。您可以将它

  • 如果您在声明组件时更喜欢基于类的 API,则可以使用官方维护的vue-class-component装饰器: import Vue from 'vue' import Component from 'vue-class-component' // @Component 修饰符注明了此类为一个 Vue 组件 @Component({ // 所有的组件选项都可以放在这里 template:

  • 问题内容: 我是 React的 新手,我想清楚地知道要使用哪一种,关于组件,我看到有两种类型。 功能组件: 基于类的组件: 我读到我们应该始终尝试使用 功能性组件, 因为它在某些方面有所帮助,并且还听说我们应该尽可能避免使用基于 类的组件 。 我很困惑哪个是对的,哪个不是。 为什么要尽可能使用功能组件,这样做有什么好处? 我们何时应该选择功能组件,何时不应该,尚不清楚。 问题答案: 类组件 基于类

  • 问题内容: 在JavaScript中,每个对象同时是一个实例和一个类。要进行继承,可以将任何对象实例用作原型。 在Python,C ++等中,有类和实例作为单独的概念。为了进行继承,您必须使用基类创建一个新类,然后可以使用该新类来生成派生实例。 为什么JavaScript朝这个方向发展(基于原型的面向对象)?与传统的基于类的OO相比,基于原型的OO有哪些优点和缺点? 问题答案: 这里大约有一百个术

  • 问题内容: 我正在尝试使用React.forwardRef,但是绊倒了如何使其在基于类的组件(而不是HOC)中工作。 docs示例使用元素和功能组件,甚至将类包装在函数中以获取更高阶的组件。 因此,从像这样在他们的文件: 而是将其定义如下: 要么 只工作:/ 另外,我知道我知道,裁判不是反应方式。我正在尝试使用第三方画布库,并希望将其一些工具添加到单独的组件中,因此我需要事件侦听器,因此需要生命周