-
Notifications
You must be signed in to change notification settings - Fork 443
开发指南
梁森 edited this page Jun 27, 2017
·
16 revisions
npm i && npm start
浏览器打开http://localhost:3000, Bingo🍺
目前提供了几个基础组件, Component, PropTypes, Transition和View.
为了保持组件的可控性, 所有自定义组件都需要继承于此Component, 而不是React.Component.
-
属性
-
className [String], 可以将className附加到组件的根元素的class上.
-
style [Object], 可以将style附加到组件的根元素的style上.
-
方法
-
classNames(className, ..., className), 使用方法参照[1], 返回类型为String.
<div className={this.classNames('el-alert', `el-alert--${ this.props.type }`)}> ... </div>
继承了React所有的PropTypes, 并提供了一些通用的自定义类型, 所有的自定义组件不推荐使用React.PropTypes.
- range(min, max)
- regex
目前只是react-addons-css-transition-group
的封装.
-
属性
- name [String], Vue的
transition
的实现, 参考[3]. - duration [String/Number]
- component [String]
- className [String]
- style [Object]
// Vue <transition name="el-alert-fade"> ... </transition> // React <Transition name="el-alert-fade" duration="300"> ... </Transition>
- name [String], Vue的
-
属性
-
show [any], Vue的
v-show
的实现, 参考[2].// Vue <i class="el-alert__closebtn" :class="{ 'is-customed': closeText !== '', 'el-icon-close': closeText === '' }" v-show="closable" @click="close()">{{closeText}}</i> // React <View show={this.props.closable}> <i className={this.classNames('el-alert__closebtn', this.props.closeText ? 'is-customed' : 'el-icon-close')} onClick={this.close.bind(this)}>{this.props.closeText}</i> </View>
项目使用jest来做单元测试, 执行以下命令:
npm test
因为组件使用了react-dom, 但是react-dom只允许初始化一次, 所以目前jest还无法正常测试React组件, 待react升级到15.4.0, 参考issue: https://github.com/facebook/jest/issues/1353
TODO
-
es-lint
npm run lint
代码规范请参考 CONTRIBUTING.md