作家
登录

编写react组件最佳实践

作者: 来源: 2017-05-18 08:56:30 阅读 我要评论

  •  
  • title: string 
  •  
  •  
  • static defaultProps = { 
  •  
  • model: { 
  •  
  • id: 0 
  •  
  • }, 
  •  
  • title: 'Your Name' 
  •  
  •  
  • propTypes和defaultProps是静态属性,应当尽可能在代码的顶部声明。这两个属性起着文档的感化,应当可以或许使浏览代码的开辟者一眼就可以或许看到。如不雅你正在应用react 15.3.0或者更高的版本,应用prop-types,而不是React.PropTypes。你的所有组件,都应当有propTypes属性。

    1. import React, { Component } from 'react' 
    2.  
    3. import { observer } from 'mobx-react' 
    4.  
    5. import { string, object } from 'prop-types' 
    6.  
    7. import ExpandableForm from './ExpandableForm' 
    8.  
    9. import './styles/ProfileContainer.css' 
    10.  
    11. export default class ProfileContainer extends Component { 
    12.  
    13. state = { expanded: false } 
    14.  
    15. static propTypes = { 
    16.  
    17. model: object.isRequired, 
    18.  
    19. title: string 
    20.  
    21.  
    22. static defaultProps = { 
    23.  
    24. model: { 
    25.  
    26. id: 0 
    27.  
    28. }, 
    29.  
    30. title: 'Your Name' 
    31.  
    32.  
    33. handleSubmit = (e) => { 
    34.  
    35. e.preventDefault() 
    36.  
    37. this.props.model.save() 
    38.  
    39.  
    40. handleNameChange = (e) => { 
    41.  
    42. this.props.model.changeName(e.target.value) 
    43.  
    44.  
    45. handleExpand = (e) => { 
    46.  
    47. e.preventDefault() 
    48.  
    49. this.setState({ expanded: !this.state.expanded }) 
    50.  
    51.  

    应用class components,当你向子组件传递办法的时刻,须要确保这些办法被调用时有精确的this值。平日会在向子组件传递时应用this.handleSubmit.bind(this)来实现。当然,应用es6的箭头函数写法加倍简洁。

    译者注:也可以在constructor中完成办法的高低文的绑定:

    1. constructor() { 
    2.  
    3. this.handleSubmit = this.handleSubmit.bind(this); 

        推荐阅读

        Java反射机制应用实践

      引言反射基本p.s: 本文须要读者对反射机制的API有必定程度的懂得,如不雅之前没有接触过的话,建议先看一下官方文档的Quick Start。在应用反射机制之前,起首我们先来看一下若何获取一个对>>>详细阅读


      本文标题:编写react组件最佳实践

      地址:http://www.17bianji.com/lsqh/35286.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)