首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >样式组件与props.children

样式组件与props.children
EN

Stack Overflow用户
提问于 2022-04-09 22:25:47
回答 1查看 392关注 0票数 0

到目前为止,我一直在使用css模块使用react。我想切换到样式化的组件,有一件事让我感到困惑。在使用css模块时,我一直将许多UI组件创建为包装器,在中间传递props.children,然后在特定的".module.css“文件中设置包装器的样式。现在,当我看到样式化的组件是如何工作的时,就像创建一个组件并对该元素进行样式化,甚至样式化嵌套的jsx标记。因此,样式化的组件具有包装行为。它是否替代了props.children的使用?

EN

回答 1

Stack Overflow用户

发布于 2022-04-10 02:42:03

不,Styled Components不会强迫你不要使用props.children

您可以使用样式化的组件作为包装器,并在其中设置子组件,就像使用css.module样式的组件所做的那样:

我猜你的反应组件是这样组成的:

代码语言:javascript
复制
// css.module
// styles.module.css

.container {
background-color: red;
}

.container > h2 {
color: green;
}

// Your React Component Wrapper:

const Wrapper = ({children}) => <div className={styles.container}>{children}</div>


// And you use it like this:

<Wrapper><h2>This text is green on a red background</h2></Wrapper>

您也可以对样式化的组件执行相同的操作:

代码语言:javascript
复制
const Wrapper = ({ children }) => <StyledWrapper>{children}</StyledWrapper>;

const StyledWrapper = styled.div`
background-color: red;
& > h2 {
color: green;
}
`;

// And you use it like this:

<Wrapper><h2>This text is green on a red background</h2></Wrapper>

结果是相同的,甚至用法也是一样的,styled-components并不强迫您使用某种反应组合模式,而是取决于您是否对容器进行样式化,然后在容器中选择子容器,或者是否单独对所有的子容器进行样式化。

它们只是给了您一些超能力,例如,您可以通过简单地调用组件名来锁定样式组件父级内的样式组件子,或者您有机会在css代码中更容易地使用JS变量,因为所有传递给样式组件的道具都可以被css检索。

演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71812367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档