0

由于假设 HOC 被用作 mixin,可能与其他 HOC 一起使用,是否最好注入具有上下文但冗长的 prop 名称(例如,以 HOC 的名称为前缀)?

我想这应该被认为是一个最佳实践的问题。

因此,例如,对于这个 HOC 注入类似窗口的行为,哪个更好:

简短的非上下文命名

@window
@otherMixin
class BasicView extends React.Component {
  render() {
    const {close, open} = this.props; //these are provided by @window
  }
}

VS上下文命名(前缀)

@window
@otherMixin
class BasicView extends React.Component {
  render() {
    const {windowClose, windowOpen} = this.props //these are provided by @window
  }
}

上下文命名(嵌套)

@window
@otherMixin
class BasicView extends React.Component {
  render() {
    const {window} = this.props; //provided by @window
    window.open();
    window.close();

    /*  optionally we can destructure and work with the shorter 
     *  non-contextually named props while still maintaining 
     *  a declaration of their context to disambiguate
     */  
    //const {window: {open, close} } = this.props; 
  }
}
4

1 回答 1

2

通常库设计者会为它提供反应上下文和一个 hoc 来订阅上下文对象。您可能不需要使用上下文。然而,大多数库设计者都受到“上下文命名(嵌套)”的限制,因为这就是上下文的工作方式。

这个问题真的只是个人意见,但是如果你想遵循其他库的模式,那是你应该选择的。

最后一点,出于显而易见的原因,我强烈建议不要证明一个名为windowever 的变量。

于 2017-10-30T23:31:23.030 回答