Reactjs 在React中声明函数和变量的位置

Reactjs 在React中声明函数和变量的位置,reactjs,constructor,parent-child,Reactjs,Constructor,Parent Child,在React中,我将变量和函数保存在何处。我在render&return语句之前一直保留着它们(在类的顶部),但从我从其他人那里看到的情况来看,这似乎不正确。我的猜测是,它们应该保留在render方法中,但在return方法之上,这就是html的用途 另一方面,有些相关的注意事项是,构造函数在React中仍然是必需的还是隐式的 我还理解,在大多数情况下,状态应该被排除在父组件之外,因为一个小的更改将导致所有子组件的重新呈现,这显然是不需要的 任何帮助都会很棒。第一个问题对我来说绝对是最重要的。不

在React中,我将变量和函数保存在何处。我在render&return语句之前一直保留着它们(在类的顶部),但从我从其他人那里看到的情况来看,这似乎不正确。我的猜测是,它们应该保留在render方法中,但在return方法之上,这就是html的用途

另一方面,有些相关的注意事项是,构造函数在React中仍然是必需的还是隐式的

我还理解,在大多数情况下,状态应该被排除在父组件之外,因为一个小的更改将导致所有子组件的重新呈现,这显然是不需要的


任何帮助都会很棒。第一个问题对我来说绝对是最重要的。

不需要构造函数。如果在实例化类时需要执行某些操作,那么您将在那里执行这些操作。。。要回答你的第一个问题,答案是这取决于/它很复杂。我将在类本身而不是在渲染方法中定义所有函数。可以在渲染中定义变量,但这取决于它们的作用和/或所需内容。如果它们是更多的静态硬编码值,那么对于您的第一个问题:和第二个问题:不,如果您有适当的Babel或任何transpiler配置,那么这可能是类上的一个属性(您可以在构造函数中指定:P)。关于第三个问题,我不明白重点。如果你不把你的州保存在一个容器中(在这里说它是家长),那么你打算把它们保存在哪里?在每个子组件中?在大多数情况下,您将提升您的状态,将其保存在父级中,然后将其传递给子级。不要考虑太多重新命名。@YoungScooter,您可以在类字段中使用不带构造函数的变量,只是在定义变量时不要使用
var
let
const
。当然,对于状态部分,您将在需要的地方使用状态。你是对的,但是正如你所说的,你的组件越大,你需要一个共同的父母来提升你的状态。我的意思是“不要太麻烦”,只要在你需要的地方使用状态。如果您需要它作为子级使用,如果您需要它作为父级使用,请在那里使用。@YoungScooter,我不知道默认值是什么,但是如果您在构造函数中使用它们,默认值是什么
this.foo=“foo”
变成了类字段的全部内容。如您所见,从child获取数据并将其保存在变量中不是一个好的做法。可能您可以使用
状态属性再次执行此操作。并非所有子项都将重新播放,只有那些具有更改的道具/值的子项才会重新播放