我听说Styled-component中的css
方法非常昂贵,但是我想知道多重嵌套的${(prop) => {}}
是否比使用css
方法的单个fn更昂贵内部。
方法1
const Foo = styled.div`
border-radius: 50%;
display: flex;
width: ${(props) => props.size};
height: ${(props) => props.size};
color: ${(props) => props.bgColor};
background-color: ${(props) => props.bgColor};
`;
vs
方法2
const Bar = styled.div`
border-radius: 50%;
display: flex;
${(props) => {
return css`
width: ${props.size};
height: ${props.size};
color: ${props.bgColor};
background-color: ${props.bgColor};
`;
}}
`;
答案 0 :(得分:0)
性能差异应可忽略不计。样式化组件唯一可以进行的优化是样式是静态的(没有插值)。
请注意,styled.div
或任何其他样式CSS方法已经完成了与css
相同的工作。这些方法接受函数作为参数(而不是插值字符串)。因此,您可以将其更进一步并执行以下操作:
const Baz = styled.div((props) => css`
border-radius: 50%;
display: flex;
width: ${props.size};
height: ${props.size};
color: ${props.bgColor};
background-color: ${props.bgColor};
`);