react规范

  1. 每个文件中只包含一个React组件。
  2. Class 与 React.createClass方法对比:尽可能地使用ES6中的类的语法,除非有特殊的对于Mixin的需求。
// bad
const Listing = React.createClass({
  render() {
    return <div />;
  }
});

// good
class Listing extends React.Component {
  render() {
    return <div />;
  }
}
  1. 关于命名
    文件名:使用帕斯卡命名法命名文件,譬如ReservationCard.jsx。
    引用命名:使用帕斯卡命名法命名组件和camelCase命名实例。
// bad
const reservationCard = require('./ReservationCard');

// good
const ReservationCard = require('./ReservationCard');

// bad
const ReservationItem = <ReservationCard />;

// good
const reservationItem = <ReservationCard />;
  1. 对于Props的命名使用camelCase
// bad
<Foo
  UserName="hello"
  phone_number={12345678}
/>

// good
<Foo
  userName="hello"
  phoneNumber={12345678}
/>
  1. 关于组件名与prop 的对其规范
// bad
<Foo superLongParam="bar"
     anotherSuperLongParam="baz" />

// good
<Foo
  superLongParam="bar"
  anotherSuperLongParam="baz"
/>

// 一行可以写下的时候放在一行
<Foo bar="bar" />

// 否则按规范换行
<Foo
  superLongParam="bar"
  anotherSuperLongParam="baz"
>
  <Spazz />
</Foo>
  1. 关于标签闭合
    在自闭合的标签中仅使用单空格。
// bad
<Foo/>

// very bad
<Foo                 />

// bad
<Foo
 />

// good
<Foo />
  1. jsx代码
/// bad
render() {
  return <MyComponent className="long body" foo="bar">
           <MyChild />
         </MyComponent>;
}

// good
render() {
  return (
    <MyComponent className="long body" foo="bar">
      <MyChild />
    </MyComponent>
  );
}

// good 如果一行可以放下,可以写成单行的形式
render() {
  const body = <div>hello</div>;
  return <MyComponent>{body}</MyComponent>;
}
  1. 组件函数顺序
  • constructor
  • 静态方法
  • componentWillMount
  • componentDidMount
  • componentWillReceiveProps
  • shouldComponentUpdate
  • componentWillUpdate
  • componentDidUpdate
  • componentWillUnmount
  • clickHandlers/eventHandlers 如:onClickSubmit() 、onChangeDescription()
  • render中调用的获取数据的函数,如:getSelectReason() 、getFooterContent()
  • render中调用的用于渲染的函数,如:renderNavigation()、renderProfilePicture()
  • render
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 以下内容是我在学习和研究React时,对React的特性、重点和注意事项的提取、精练和总结,可以做为React特性...
    科研者阅读 8,292评论 2 21
  • $ 前言   最近在考虑框架转型,鉴于作为一名JSer,要时时刻刻保持对新技术和流行技术的敏感性,而 React、...
    果汁凉茶丶阅读 22,051评论 5 32
  • HTML模版 之后出现的React代码嵌套入模版中。 1. Hello world 这段代码将一个一级标题插入到指...
    ryanho84阅读 6,307评论 0 9
  • 40、React 什么是React?React 是一个用于构建用户界面的框架(采用的是MVC模式):集中处理VIE...
    萌妹撒阅读 1,052评论 0 1
  • 幻想震碎了又一个黎明 已破晓 世界湮灭为瓦砾 惧颤时间的威仪 就又弃了那可人的知己 淙溪密林 禅院暮钟 疏篱田舍 ...
    爱迪生先生阅读 270评论 0 3