Javascript 关于类名风格技巧的最佳实践
我是Javascript 关于类名风格技巧的最佳实践,javascript,html,css,reactjs,Javascript,Html,Css,Reactjs,我是react.Js的新手,通常在vue.Js或vanilla(纯HTML、CSS、Js)中进行样式设计。我对React中的ClassName最佳实践有一些疑问。我想问一下在ReactJs中给出类名时的最佳实践(如果您给出使用其中一种样式的优点和缺点等原因,这将非常有用) 我们说我在React.Js中有一个页面,在中有一些css文件,作用域是和全局是。在React.Js中进行样式设置或在其中说明我的类时,我使用了一些技巧: className={styles.scopedCSS}-->在本例中,
react.Js的新手,通常在vue.Js
或vanilla(纯HTML、CSS、Js)
中进行样式设计。我对React
中的ClassName最佳实践有一些疑问。我想问一下在ReactJs中给出类名时的最佳实践(如果您给出使用其中一种样式的优点和缺点等原因,这将非常有用)
我们说我在React.Js
中有一个页面,在中有一些css文件,作用域是和全局是。在React.Js
中进行样式设置或在其中说明我的类时,我使用了一些技巧:
className={styles.scopedCSS}
-->在本例中,我使用了作用域样式从“/mycode.css”导入样式
className=“Global CSS”
-->我正在使用全局CSS文件,比如说app.CSS
一般来说,有两种技术,但是当您在项目中使用更复杂和自定义的CSS样式时,我的好奇心就来了,比如组合global
和scoped
CSS。这是我发现的当前技术:
className={`Global CSS Global CSS${styles.ScopedCSS}${styles.ScopedCSS}}}
className={`Global CSS Global CSS${style.['scoped-CSS','scoped CSS']}}
className={Style.constStyleingName}
-->为此,我使用了constStyleingName=`Global CSS Global CSS${Style['scoped-CSS','scoped CSS']}
要编写完整的CSS行,所以我在这里只使用一行来定义我的类名
,如果您想在这里添加一些逻辑,您也可以使用三元操作
style={marginLeft:0,display:'flex'等}
-->在我的代码中直接使用full-style-inline
关于这方面的信息,我真的很好奇,因为我发现这是一个非常有趣的话题,我发现解释这些差异对我来说没有太多的文章,而且我进行了相当多的讨论,因为当项目规模越来越大时,上述技术之一只会使您的代码看起来像意大利面代码
我希望有人能帮我解释这个问题,因为我真的很想在react中了解这个样式化技术问题。要动态实现className,我建议使用npm包classnames
例如,您可以这样使用它(对于条件类来说非常方便):
如果您使用的是限定范围的css,最好检查css模块,而不是普通的css。如果您对js中的css感兴趣,那么情感和样式化组件是一些替代品,这在React样式设计中非常流行。要动态实现类名,我建议使用npm包类名
例如,您可以这样使用它(对于条件类来说非常方便):
如果您使用的是限定范围的css,最好检查css模块,而不是普通的css。如果您对js中的css感兴趣,情感和样式化组件是一些替代品,这在React样式设计中非常流行。您可以查看BEM
方法。此方法不仅适用于react
,还适用于您有一个大项目并且希望不重复类名的情况@Hovakimyan感谢您的评论和BEM参考
文章。对我来说,学习概念本身的名称是一件新鲜事,通常我在将我的类划分为一个非常特定的类时使用这个概念。但它似乎与一般章节第2点中的普通类相匹配。但是感谢您提供的新信息,因为我正在使用这种方法,但自己不知道概念的名称。您可以查看BEM
方法。此方法不仅适用于react
,还适用于您有一个大项目并且希望不重复类名的情况@Hovakimyan感谢您的评论和BEM参考
文章。对我来说,学习概念本身的名称是一件新鲜事,通常我在将我的类划分为一个非常特定的类时使用这个概念。但它似乎与一般章节第2点中的普通类相匹配。但是谢谢你提供的新信息,因为我正在使用这个方法,但不知道这个概念本身的名称
import cn from classnames;
className={cn('text-bold', 'font-xl')}
className={cn('text-bold', {'font-xl': userInput === 'xl'})}