React编码规范

  • 文件名: 文件命名采用帕斯卡命名法,如:ReservationCard.jsx
  • 引用名: 组件引用采用帕斯卡命名法,其实例采用驼峰式命名法
    如:const ReservationCard = require('./ReservationCard');const reservationItem = ;
  • 引号:对于 JSX 使用双引号,对其它所有 JS 属性使用单引号
    如:
  • 标签:在自闭和标签之前留一个空格 如:
  • 属性名:采用驼峰式命名法
    如: userName="hello"
    phoneNumber={12345678}
    />
  • 当组件跨行时,要用括号包裹 JSX 标签
    如:render() {
    return (



    );
    }
  • 没有子组件的父组件使用自闭和标签
    如:
  • 如果组件有多行属性,闭合标签应写在新的一行上。
    如: bar="bar"
    baz="baz"
    />
  • 不要对 React 组件的内置方法使用“_”前缀
  • 顺序:继承 React.Component 的类的方法遵循下面的顺序
    1.constructor
    2.optional static methods
    3.getChildContext
    4.componentWillMount
    5.componentDidMount
    6.componentWillReceiveProps
    7.shouldComponentUpdate
    8.componentWillUpdate
    9.componentDidUpdate
    10.componentWillUnmount
    11.clickHandlers or eventHandlers like onClickSubmit() or onChangeDescription()
    12.getter methods for render like getSelectReason() or getFooterContent()
    13.Optional render methods like renderNavigation() or renderProfilePicture()
    14.render
  • 定义 propTypes,defaultProps,contextTypes 等等…
import React, { PropTypes } from 'react';

const propTypes = {
  id: PropTypes.number.isRequired,
  url: PropTypes.string.isRequired,
  text: PropTypes.string,
};

const defaultProps = {
  text: 'Hello World',
};

class Link extends React.Component {
  static methodsAreOk() {
    return true;
  }

  render() {
    return {this.props.text}
  }
}

Link.propTypes = propTypes;
Link.defaultProps = defaultProps;

export default Link;
  • 使用 React.createClass 时,方法顺序如下:
    1.displayName
    2.propTypes
    3.contextTypes
    4.childContextTypes
    5.mixins
    6.statics
    7.defaultProps
    8.getDefaultProps
    9.getInitialState
    10.getChildContext
    11.componentWillMount
    12.componentDidMount
    13.componentWillReceiveProps
    14.shouldComponentUpdate
    15.componentWillUpdate
    16.componentDidUpdate
    17.componentWillUnmount
    18.clickHandlers or eventHandlers like onClickSubmit() or onChangeDescription()
    19.getter methods for render like getSelectReason() or getFooterContent()
    20.Optional render methods like renderNavigation() or renderProfilePicture()
    21.render

你可能感兴趣的:(React编码规范)