Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在JavaScript和React上使用OOP方法的缺点是什么?_Reactjs_Typescript - Fatal编程技术网

Reactjs 在JavaScript和React上使用OOP方法的缺点是什么?

Reactjs 在JavaScript和React上使用OOP方法的缺点是什么?,reactjs,typescript,Reactjs,Typescript,我正在为内部项目创建某种基本系统,我正在使用OOP方法实现一个自定义表单系统,就像我在使用TypeScript一样 class Form extends React.Component {} abstract class FormElement extends React.Component<{validations?:ValidationLogic[]}> { validate(); setData(); setValidation(); } class Fo

我正在为内部项目创建某种基本系统,我正在使用OOP方法实现一个自定义表单系统,就像我在使用TypeScript一样

class Form extends React.Component {}

abstract class FormElement extends React.Component<{validations?:ValidationLogic[]}> {
   validate();
   setData();
   setValidation();
}

class FormText extends FormElement {}
类形式扩展了React.Component{}
抽象类FormElement扩展了React.Component{
验证();
setData();
setValidation();
}
类FormText扩展了FormElement{}
关于这些:

我想知道,使用类的缺点是纯粹主观的,还是有客观的观点,如果有性能问题,我很乐意看到数据


谢谢

当您使用类语法创建React组件时,您将可以访问React的生命周期方法。你可以阅读更多关于他们的信息。此外,如果您的组件需要访问
this
、设置state或设置
ref
,则应使用类组件

使用类语法创建React组件时,可以访问React的生命周期方法。你可以阅读更多关于他们的信息。此外,如果您的组件需要访问
this
、设置state或设置
ref
,则应使用类组件

使用React执行OO是很好的,并且有@sxzhao指出的好处

但是,避免使用OO作为重用函数的机制,或者向React组件添加更多的“特性”,例如额外的逻辑

最好将它们与您的组件分开


您的逻辑最好在其他地方处理,例如使用Redux、Mobx或任何其他方法。

使用React执行OO很好,并具有@sxzhao指出的好处

但是,避免使用OO作为重用函数的机制,或者向React组件添加更多的“特性”,例如额外的逻辑

最好将它们与您的组件分开


您的逻辑最好在其他地方处理,例如使用Redux、Mobx或任何其他方法。

OOP是编程范例之一。它可能和任何其他编程范式一样有优点和缺点,例如函数范式。OOP是编程范式之一。它可能和任何其他编程范式一样有优点和缺点,例如函数范式。嗨,谢谢你的回答。我使用OO的原因是强制用户从提供基本实现的抽象基类进行扩展(例如,在本例中,setData、setValidation和validate由抽象基类提供,因为它与表单组件紧密耦合,我不明白为什么我应该移动与其他位置的组件紧密耦合的逻辑)。在React中,这是一个糟糕的设计吗?是否有任何关于其糟糕原因的指标?主要思想是将UI呈现/逻辑与业务逻辑分离。在UI层中混合业务逻辑会产生不必要的耦合。您好,感谢您的回答。我使用OO的原因是强制用户从提供基本实现的抽象基类扩展(例如,在本例中,setData、setValidation和validate由抽象基类提供,因为它与表单组件紧密耦合,我不明白为什么我应该移动与其他位置的组件紧密耦合的逻辑)。这在React中是一个糟糕的设计吗?是否有任何指标说明其糟糕的原因?主要思想是将UI呈现/逻辑与业务逻辑分离。在UI层中混合业务逻辑会产生不必要的耦合。您好@sxzhao,谢谢您的回答。我可以从React.Component进行扩展。但是,我引用的文章中提到的是不好的要扩展React.Component以外的组件,在上面的示例中,FormText是从抽象类FormElement扩展而来的,因为FormText确实是一个具有不同用户界面的FormElement。是否有任何数据说明其不好?Hi@sxzhao,谢谢你的回答。我同意从React.Component扩展,但是,我引用的文章是在讨论除了React.Component之外,扩展是不合适的。在上面的示例中,FormText是从抽象类FormElement扩展而来的,因为FormText确实是一个具有不同用户界面的FormElement。是否有数据说明其不好的原因?