相关疑难解决方法(0)

React功能组件默认props与默认参数

在React 功能组件中,这是设置默认道具,使用Component.defaultProps或使用函数定义上的默认参数的更好方法,示例:

默认道具:

const Component = ({ prop1, prop2 }) => (
  <div></div>
)

Component.defaultProps = {
  prop1: false,
  prop2: 'My Prop',
}
Run Code Online (Sandbox Code Playgroud)

默认参数:

const Component = ({ prop1 = false, prop2 = 'My Prop' }) => (
  <div></div>
)    
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs

40
推荐指数
3
解决办法
2万
查看次数

React - defaultProps vs ES6默认params在解构时(性能问题)

在我的一个无状态功能组件中设置默认值时,我刚刚遇到了关于React性能的问题.

这个组件有一个defaultProps定义的row: false,但我不喜欢它,因为defaultProps位于文件的末尾,这实际上使它更难看.因此,我们不知道默认属性.所以我直接将它移动到函数声明中,并使用参数的ES6默认值进行分配.

const FormField = ({
  row = false,
  ...others,
}) => {
  // logic...
};
Run Code Online (Sandbox Code Playgroud)

但后来我们与一位同事争论这是一个好主意.因为这样做可能看起来微不足道,但也可能对性能产生很大影响,因为反应不知道默认值.

我相信在这种情况下,它是微不足道的.因为它是布尔值而不是对象/数组,因此在对帐期间不会被视为不同的值.


但是,让我们现在看一个更高级的用例:

const FormField = ({
  input: { name, value, ...inputRest },
  label = capitalize(name),
  placeholder = label,
  row = false,
  meta: { touched, error, warning },
  ...others,
}) => {
  // logic...
};
Run Code Online (Sandbox Code Playgroud)

在这里,我基于placeholderfrom 的值label,它本身就是基于的input.name.使用ES6解构和参数的默认值使整个事情很容易编写/理解,它就像一个魅力. …

performance destructuring ecmascript-6 reactjs

39
推荐指数
2
解决办法
7337
查看次数