-
Notifications
You must be signed in to change notification settings - Fork 443
组件接口说明
e1emeb0t edited this page Oct 27, 2016
·
2 revisions
目前提供了3个基础组件, Component, PropTypes和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)
-
属性
-
if [any], Vue中的
v-if
的实现, 参考[2].// Vue <i class="el-alert__icon" :class="[ iconClass, isBigIcon ]" v-if="showIcon"></i> // React <View if={this.props.showIcon}> <i className={this.classNames('el-alert__icon', TYPE_CLASSES_MAP[this.props.type] || 'el-icon-information', {'is-big': this.props.description})}></i> </View>
-
show [any], Vue的
v-show
的实现, 参考[3].// 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>
-
transition [String], Vue的
transition
的实现, 参考[4].// Vue <transition name="el-alert-fade"> ... </transition> // React <View transition="el-alert-fade"> ... </View>
注意: React.Children.count(props.children) === 1