大佬教程收集整理的这篇文章主要介绍了reactjs – CSS模块组成,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我们的组件:
import React,{PropTypes} from 'react' import cssModules from 'react-css-modules' import styles from './style.sass' const Button = ({Children = 'Submit',...props}) => { const align = props.align ? `-${props.align}` : '' const type = props.type ? `-${props.typE}` : '' const stylename = `button${typE}${align}` return ( <button onClick={props.onClick} {...props} stylename={stylename}> {Children} </button> ) } Button.propTypes = { align: PropTypes.String,onClick: PropTypes.func.isrequired,type: PropTypes.String,} export default cssModules(Button,styles)
到目前为止这是样式表:
@import "~components/styles/variables" .button color: $button-default BACkground-color: transparent font-family: $font-family font-size: $default-font-size font-weight: $font-regular line-height: $default-button-height margin: 0 $pad 0 0 outline: none padding: 0 $pad*2 .left float: left .right float: right .priMary color: $BACkground-interaction BACkground-color: $button-default .button-left composes: button,left .button-right composes: button,right .button-priMary composes: button,priMary .button-priMary-left composes: button,priMary,left .button-priMary-right composes: button,right
现在,这很痛苦.我们添加的每个可配置道具都会以指数方式增加我们必须提供的合成类的数量.我们当前可以配置align和type,因为两者都可以为null,所以我们有6种可能的组合,因此除了base .button之外还要创建5个类.
如果我们只添加一个道具,比如只是一个布尔粗体,我们现在必须添加一大堆新的组合类名:.button-bold,.button-left-bold,.button-right-bold,.button- priMary-bold,.button-priMary-left-bold,.button-priMary-right-bold.
我知道使用react-css-modules,我们可以启用allowMultiple设置,允许我们指定多个模块应用于元素,但我的理解是反对最佳实践.我觉得我们必须在这里遗漏一些东西.我们做错了什么?
像“button-priMary-left-bold”这样的类具有一些语义含义(“button-priMary”),但它也有一些布局含义(“left”)和一些文本外观含义(“bold”). Button组件可能没有业务控制自己的布局.请记住,您也可以编写React组件!所以你可以有更多的东西:
<Left><Button type="priMary">Click Me!</Button></Left>
现在,Button组件的CSS模块可以担心按钮的类型. Button组件可以在任何地方使用,可以使用任何布局,而不仅仅是基于浮动的布局.
更好的是,浮动也可以被推入更加语义的组件中.也许是这样的:
<ButtonBar> <Button>Cancel</Button> <Button type="priMary">Save</Button> </ButtonBar>
ButtonBar可以有自己的CSS模块来完成布局.之后你可以换掉那个时髦的浮动布局,以获得时髦的flexbox布局.
以上是大佬教程为你收集整理的reactjs – CSS模块组成全部内容,希望文章能够帮你解决reactjs – CSS模块组成所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。