我刚开始使用Material UI,知道它使用CSS in JS的方式来样式化组件。
在文档中有2种方法可以创建样式:
第一种方法是使用sx
属性:
<Box sx={{ backgroundColor: 'green' }}/>
使用makeStyles
方法:
makeStyles({
root: {
backgroundColor: 'green'
}
})
我知道在JS中使用CSS比本地CSS性能要差得多。
但是在我刚刚写的这两种方法之间,哪一种更具性能优势(如果有的话)?
顺便说一下,我正在使用Material UI版本5,声称使用情感(emotion)而不是JSS可以获得更好的整体性能。
@material-ui/styles
包(https://next.material-ui.com/guides/migration-v4/#material-ui-core-styles)使用它,但它被认为是不推荐使用的。sx
属性只是一个方便的实用程序,用于为Material-UI组件设置样式,但您仍然可以通过任何其他样式解决方案提供CSS类。 - Ryan Cogswellsx
被所有 MUI 组件支持,不仅仅是 Box。 - Ryan Cogswellsx
,主要是我会避免在页面上呈现大量元素的组件中使用它。我不会担心页面上有100个或更少的元素使用sx
,但我可能会避免在列表项、网格或表格单元格、菜单项和其他高容量元素中使用它。 - Ryan Cogswellstyled
性能而言,只要函数没有执行任何昂贵的操作,它与传递样式对象时的性能不会有明显的区别。 - Ryan Cogswell