gpt4 book ai didi

javascript - Reactjs:类/原型(prototype)在我们的应用程序中有任何位置吗?

转载 作者:行者123 更新时间:2023-11-30 00:16:49 25 4
gpt4 key购买 nike

O.O 开发人员正在过渡到模块世界

我几乎所有的 JavaScript 编码经验都在 React 中,而且我构建的几乎所有内容都严格使用 React 组件、存储、操作和调度程序。

除此之外,我尝试抽象出的所有内容都已放入辅助模块中。(XUtils、YUtils WebAPIUtils 等)


我困惑的地方

但昨天我遇到了一个问题,这表明我对 React 的理解存在差距,因为 我发现自己想要创建一个辅助类/原型(prototype)(无论你喜欢封装你的代码)来添加到一个组件中,因为典型的导入模块只有方法,而我需要一些可以封装变量的东西。

感觉不对,但我无法解释为什么我觉得我无法将类/原型(prototype)插入到我的 React 代码的任何部分。

问题:

我们所有用于抽象/委托(delegate)代码的辅助类是否都应该限制在模块中?如果是这样,您能否解释一下为什么 React 编程是一个模块世界背后的哲学?

最佳答案

the typical imported module would only have methods whereas I would need something that I could encapsulate variables

模块可以导出任何内容。这是故意的。

export const someConstant = 4;
export class SomeClass {}
export function someFunction() {}

想在一个模块中保留一堆变量,以便您可以在一堆其他模块之间共享它们吗?听起来像一个配置文件/存储,去吧。这是一个坚实的模式。

想要创建一个带有返回类实例的工厂函数的模块吗?好主意,坚实的模式。

想从模块中导出一个类?这就是 React 对其组件的推荐。 React 明确鼓励这种模式,并且通常是一种很好的做法。去吧。

Should all of our helper classes to abstract away/delegate code be limited to modules?

您可以将任何 放入模块中,将其导出,然后将其导入到另一个模块中。这是一个值得遵循的好做法,因为它创建了封装并允许代码重用。但是,这段代码是否应该限于模块?这是一个奇怪的问题。

  • 你的意思是你想抽象代码而不重用它?我不知道那是什么样子。
  • 你的意思是你想抽象代码并在不成为模块的情况下共享它?你如何分享它?

将代码抽象到一个模块中供应用程序的其余部分使用不是限制。它是一种超能力

can you explain a little bit of the philosophy behind why React programming is a world of modules?

因为编程是一个模块世界。模块为我们提供了代码重用(DRY pattern)和encapsulation (面向对象编程的一个关键特征)。模块通过限制代码的范围和表面积来鼓励可测试性。经过测试的模块让开发人员有信心重新使用它们。模块都是上行的。

关于javascript - Reactjs:类/原型(prototype)在我们的应用程序中有任何位置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34408207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com