美文网首页
2019-06-04 React(props)

2019-06-04 React(props)

作者: 柳叁叁 | 来源:发表于2019-06-04 19:55 被阅读0次

    配置组件的 props

    1、在《使用》一个组件的时候,可以把参数放在《标签的属性》当中,所有的属性都会作为 props 对象的键值。
    一个组件的行为、显示形态都可以用 props 来控制,就可以达到很好的可配置性。可以自己在使用的时候传进去。

    2、
    render () {
    const likedText = this.props.likedText || '取消'
    const unlikedText = this.props.unlikedText || '点赞'
    return (
    <button onClick={this.handleClickOnLikeButton.bind(this)}>
    {this.state.isLiked ? likedText : unlikedText} 👍
    </button>
    )
    }
    }
    组件默认配置我们是通过 || 操作符来实现。这种需要默认配置的情况在 React.js 中非常常见,所以 React.js 也提供了一种方式 defaultProps,可以方便的做到默认配置。
    defaultProps 作为点赞按钮组件的类属性,里面是对 props 中各个属性的默认配置。这样我们就不需要判断配置属性是否传进来了:如果没有传进来,会直接使用 defaultProps 中的默认属性。 所以可以看到,在 render 函数中,我们会直接使用 this.props 而不需要再做判断。

    3、在这里,我们把 Index 的 state 中的 likedText 和 unlikedText 传给 LikeButton 。Index 还有另外一个按钮,点击这个按钮会通过 setState 修改 Index 的 state 中的两个属性。

    由于 setState 会导致 Index 重新渲染,所以 LikedButton 会接收到新的 props,并且重新渲染,于是它的显示形态也会得到更新。这就是通过重新渲染的方式来传入新的 props 从而达到修改 LikedButton 显示形态的效果。

    4、总结
    为了使得组件的可定制性更强,在使用组件的时候,可以在标签上加属性来传入配置参数。
    组件可以在内部通过 this.props 获取到配置参数,组件可以根据 props 的不同来确定自己的显示形态,达到可配置的效果。
    可以通过给组件添加类属性 defaultProps 来配置默认参数。
    props 一旦传入,你就不可以在组件内部对它进行修改。但是你可以通过父组件主动重新渲染的方式来传入新的 props,从而达到更新的效果。

    相关文章

      网友评论

          本文标题:2019-06-04 React(props)

          本文链接:https://www.haomeiwen.com/subject/mgnkxctx.html