使用 getter 在 React 组件中渲染另一个组件是一个好习惯吗?
Is it a good practice to use getter to render another component inside React component?
在某些情况下,getter 方法会很方便。但是使用 getter 方法来渲染 React 组件或整个 DOM 呢?为此目的使用经典方法而不是 getter 不是更好吗?为什么?
我觉得这方面有些不对劲,但我也知道这可能与作者的感受有关。
所以问题是,这是否是一个好的方法?或者您的喜好是什么?
class Attachment extends React.Component {
get file() {
return this.props.fields.File;
}
get label() {
return this.props.fields.Label;
}
// I'm asking about these 2 getters below this comment
get editableAttachment() {
return <SomeComponent field={this.label} />;
}
get attachment() {
return (
<a
href={this.file && this.file.value && this.file.value.src}
target="_blank"
>
{(this.label && this.label.value)}
</a>
);
}
render() {
return (
<div className="ui-some-component">
{this.props.isPageEditing ? this.editableAttachment : this.attachment}
</div>
);
}
}
提前谢谢你。
很符合消费者的口味,我相信只要不引入野蛮,任何代码都是好的。
代码越易懂越好,这也是事实。对于不知道我的代码的人,我会尽量使代码简单易读。
另一方面,我尽量使组件尽可能简单和直观。
也许这将是您自己使用 "my style guide":
的代码示例
const Attachment = ({ isPageEditing, fields }) => {
const { file, label } = fields;
const attachment = isPageEditing ? (
<SomeComponent field={fields.label} />
) : (
<a href={file && file.value && file.value.src} target="_blank">
{label && label.value}
</a>
);
return <div className="ui-some-component">{attachment}</div>;
};
希望对你有所帮助,
最佳
我认为这取决于偏好。与更基本的 if x do this, if y do that
渲染相比,通过延迟计算不会有任何好处——两者都必须完成工作。
我的两分钱是保持组件简单易读。为每个条件跳转 class 会使下一个开发人员更加困难。
在某些情况下,getter 方法会很方便。但是使用 getter 方法来渲染 React 组件或整个 DOM 呢?为此目的使用经典方法而不是 getter 不是更好吗?为什么?
我觉得这方面有些不对劲,但我也知道这可能与作者的感受有关。
所以问题是,这是否是一个好的方法?或者您的喜好是什么?
class Attachment extends React.Component {
get file() {
return this.props.fields.File;
}
get label() {
return this.props.fields.Label;
}
// I'm asking about these 2 getters below this comment
get editableAttachment() {
return <SomeComponent field={this.label} />;
}
get attachment() {
return (
<a
href={this.file && this.file.value && this.file.value.src}
target="_blank"
>
{(this.label && this.label.value)}
</a>
);
}
render() {
return (
<div className="ui-some-component">
{this.props.isPageEditing ? this.editableAttachment : this.attachment}
</div>
);
}
}
提前谢谢你。
很符合消费者的口味,我相信只要不引入野蛮,任何代码都是好的。
代码越易懂越好,这也是事实。对于不知道我的代码的人,我会尽量使代码简单易读。
另一方面,我尽量使组件尽可能简单和直观。
也许这将是您自己使用 "my style guide":
的代码示例const Attachment = ({ isPageEditing, fields }) => {
const { file, label } = fields;
const attachment = isPageEditing ? (
<SomeComponent field={fields.label} />
) : (
<a href={file && file.value && file.value.src} target="_blank">
{label && label.value}
</a>
);
return <div className="ui-some-component">{attachment}</div>;
};
希望对你有所帮助, 最佳
我认为这取决于偏好。与更基本的 if x do this, if y do that
渲染相比,通过延迟计算不会有任何好处——两者都必须完成工作。
我的两分钱是保持组件简单易读。为每个条件跳转 class 会使下一个开发人员更加困难。