Reactjs 在JavaScript和React上使用OOP方法的缺点是什么?
我正在为内部项目创建某种基本系统,我正在使用OOP方法实现一个自定义表单系统,就像我在使用TypeScript一样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
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。是否有数据说明其不好的原因?