chanjet-nova-ui-theme
使用方法说明
实现支持 theme 的 React Component?
现在,我们以一个简单的支持 theme 的组件 InputGroup
来示范。InputGroup
是一个水平布局的组件,其中可以包含 Icon
、Input
,假设我们这里的 Icon
,Input
都已经实现了 theme 化管理,现在示例 InputGroup
如何实现 theme 的支持。
InputGroup.js
;;; const InputGroup = { let className children ...others = props; // classnames 支持将多个 className 进行合并 className = classnamesclassName; return <div className=className ...others> children </div> } InputGrouppropTypes = const StyledInputGroup = StyledInputGroup;
定义你的 ui theme
Theme.js
const theme = // 组件样式声明,key 为 InputGroup.js 中 connectStyle 声明的名称。 'chanjet.ui.InputGroup': 'chanjet.ui.Icon': display:'inline-block' marginRight: '4px' 'chanjet.ui.Input': display:'inline-block' ‘small': { height: '32px' }, display:'inline-block', verticalAlign: 'middle' }} export default theme;
在你的App中使用
App.js
;;;;;;extends ReactComponent{return<StyleProvider style=theme mountNode='stylesheet'><div><h1>It Works!</h1><InputGroup styleName="small"><Icon name="ic_access_alarm" /><Input type='number' /></InputGroup></div></StyleProvider>};
index.html
React AppLoading...