React:为什么 getDefaultProps 是一个方法而 propTypes 是一个普通对象?
React: why is getDefaultProps a method while propTypes is a plain object?
由于 getDefaultProps
不引用组件实例,因此您似乎不需要函数(例如,因为不需要重新绑定 this
)和普通的旧对象可以正常工作。在那里使用函数有什么好处,为什么不适用于 propTypes
?
propTypes
propTypes
是一个对象,因为它用于声明一个 prop 是一个特定的 JS 原语。例如:
React.createClass({
propTypes: {
optionalArray: React.PropTypes.array,
optionalBool: React.PropTypes.bool,
optionalFunc: React.PropTypes.func
}
});
这有助于确保正确使用组件。当为道具提供无效值时,JavaScript 控制台中将显示警告。
getDefaultProps()
getDefaultProps
用于定义 props
的默认值,并在创建 class 时调用一次并缓存。
为什么
我相信优势,或者更确切地说,getDefaultProps()
是一个函数,因此可以缓存它以避免下次使用该组件时重新计算。
由于 getDefaultProps
不引用组件实例,因此您似乎不需要函数(例如,因为不需要重新绑定 this
)和普通的旧对象可以正常工作。在那里使用函数有什么好处,为什么不适用于 propTypes
?
propTypes
propTypes
是一个对象,因为它用于声明一个 prop 是一个特定的 JS 原语。例如:
React.createClass({
propTypes: {
optionalArray: React.PropTypes.array,
optionalBool: React.PropTypes.bool,
optionalFunc: React.PropTypes.func
}
});
这有助于确保正确使用组件。当为道具提供无效值时,JavaScript 控制台中将显示警告。
getDefaultProps()
getDefaultProps
用于定义 props
的默认值,并在创建 class 时调用一次并缓存。
为什么
我相信优势,或者更确切地说,getDefaultProps()
是一个函数,因此可以缓存它以避免下次使用该组件时重新计算。