是否可以在生成的样式组件类之前添加自定义类?

Posted

技术标签:

【中文标题】是否可以在生成的样式组件类之前添加自定义类?【英文标题】:Is it possible to prepend the generated styled-component classes with a custom class? 【发布时间】:2021-01-17 05:17:25 【问题描述】:

是否可以在项目的样式组件的输出中为所有类添加一个固定字符串?

例如

class="sc-fznyAO"

会变成

class="myProjectOne-sc-fznyAO"

我在同一页面上运行了几个已编译的项目,每个项目都是专用 .js 文件中的一个反应应用程序。将所有随机生成的哈希添加到生成它的项目中,这确实有助于提高可读性和特异性。

目前尝试使用import styled from 'styled-components/macro'; 导入样式组件。这提供了更多的控制和特异性。但我并不是真的在寻找控制每一个元素。这些都可以保持随机散列,我只想为每个项目在每个类前面添加相同的字符串。 我认为这在 webpack 配置中的某个地方应该是可能的,但我似乎找不到它。

【问题讨论】:

【参考方案1】:

下面是一个例子,它会给你一个前置类名

export const Example = styled("div").withConfig( displayName: "myProjectOne" )(
  css`
    width: 100%;
  `
);

【讨论】:

displayName 似乎是正确的方向,您知道是否有一种方法可以一次性为所有样式组件设置 dispalyName,而不是为每个单独的样式组件设置?就像在 webpack 配置中一样?

以上是关于是否可以在生成的样式组件类之前添加自定义类?的主要内容,如果未能解决你的问题,请参考以下文章

自定义组件无法应用样式类,内置组件可以

React Material Design:在类组件中使用带有 redux 的 React Material Design 自定义样式

微信小程序覆盖自定义组件样式

elementUI树形组件添加连线和自定义图标

将自定义类/样式传递给 Gatsby (React) 中的样式化组件

vuejs的组件化开发中怎么自定义class覆盖原有样式?