样式开关

我们也可以通过开/关某个功能来实现我们我们组件的多样性. 而这些开关我们可以通过props传递进我们的组件.

Toggle并不是万能的:

如果抱着toggle的想法, 我们很容易将一个组件设计成一个万能组件, 通过传入一大堆props来完成多样性, 这其实并不是特别好的实践. 所以我们最好遵守以下两点:

  • 只将必须的props传入我们的组件, 而且当props太多时需要考虑抽取子组件.
  • 不要违背单一职责原则.

例子

在登录表单中显示/隐藏 password

  1. class PasswordField extends Component {
  2. render() {
  3. const {
  4. password,
  5. showHidePassword,
  6. showErrorOnTop,
  7. showLabels,
  8. shouldComplyAda
  9. } = this.props;
  10. return (
  11. <div>
  12. <Password
  13. field={password}
  14. label="Password"
  15. showErrorOnTop={showErrorOnTop}
  16. placeholder={shouldComplyAda ? "" : "Password"}
  17. showLabel={showLabels}
  18. showHidePassword={showHidePassword}
  19. />
  20. </div>
  21. );
  22. }
  23. }

参考资料: