- 给无状态的纯UI组件应用样式
给无状态的纯UI组件应用样式
请保持样式远离那些离不开state的组件. 比如路由, 视图, 容器, 表单, 布局等等不应该有任何的样式或者css class出现在组件上.
相反, 这些复杂的业务组件应该有一些带有基本功能的无状态UI组件组成.
没有任何样式/classNames的Form组件, 仅有纯的组件组合而成.
class SampleComponent extends Component {render() {return (<form onSubmit={this.handleSubmit}><Heading children='Sign In'/><Inputname='username'value={username}onChange={this.handleChange}/><Inputtype='password'name='password'value={password}onChange={this.handleChange}/><Buttontype='submit'children='Sign In'/></form>)}}// 表达组件(带样式)const Button = ({...props}) => {const sx = {fontFamily: 'inherit',fontSize: 'inherit',fontWeight: 'bold',textDecoration: 'none',display: 'inline-block',margin: 0,paddingTop: 8,paddingBottom: 8,paddingLeft: 16,paddingRight: 16,border: 0,color: 'white',backgroundColor: 'blue',WebkitAppearance: 'none',MozAppearance: 'none'}return (<button {...props} style={sx}/>)}
