reactjs - styled-components 条件动画性能问题
问题描述
我已经玩styled-components
了几天和条件渲染了,我注意到一些动画滞后,因为这个我不确定它是否真的与styled-components
其他东西有关,或者这是我的按钮组件,你能检查一下这些检查吗太重了?或者我还有其他影响性能的东西吗?
export const StyledButton = styled.button`
cursor: pointer;
border-radius: ${borderRadius};
outline: none;
// inputs: color, outlined
// default
border: 1px solid transparent;
color: ${({ theme, color }) => !color && theme.buttonText};
background-color: ${({ theme, color }) => !color && theme.buttonBackground};
// regular
color: ${({ color, outlined }) => !outlined && color && colors.white};
background-color: ${({ color, outlined }) => !outlined && color};
// outlined
color: ${({ color, outlined }) => outlined && color};
background-color: ${({ color, outlined }) => outlined && color && `transparent`};
border-color: ${({ color }) => color};
transition: background-color 350ms linear, color 350ms linear;
svg {
transition: stroke 350ms linear;
// default
stroke: ${({ theme, color }) => !color && theme.buttonText};
// regular
stroke: ${({ color, outlined }) => !outlined && color && colors.white};
// outlined
stroke: ${({ color, outlined }) => outlined && color};
}
* > * {
transition: color 350ms linear;
// default
color: ${({ theme, color }) => !color && theme.buttonText};
// regular
color: ${({ color, outlined }) => !outlined && color && colors.white};
// outlined
color: ${({ color, outlined }) => outlined && color};
}
&:hover {
// default
color: ${({ theme, color }) => !color && theme.buttonBackground};
background-color: ${({ theme, color }) => !color && theme.buttonText};
// regular
color: ${({ color, outlined }) => !outlined && color};
background-color: ${({ color, outlined }) => !outlined && color && "transparent"};
// outlined
color: ${({ color, outlined }) => outlined && color && colors.white};
background-color: ${({ color, outlined }) => outlined && color};
svg {
// default
stroke: ${({ theme, color }) => !color && theme.buttonBackground};
// regular
stroke: ${({ color, outlined }) => !outlined && color};
// outlined
stroke: ${({ color, outlined }) => outlined && color && colors.white};
}
* > * {
// default
color: ${({ theme, color }) => !color && theme.buttonBackground};
// regular
color: ${({ color, outlined }) => !outlined && color};
// outlined
color: ${({ color, outlined }) => outlined && color && colors.white};
}
}
`;
解决方案
推荐阅读
- r - R getURL 错误:1407742E:SSL 尝试下载 URI
- visual-studio-2019 - 使用 VS2019 将 Web 应用程序部署到 IIS 失败 - DLL 被锁定
- postgresql - 通过nodeJS连接aws postgres实例时出现超时错误
- python - Numpy:对于列表中的每个数组,np.array 的每一行乘以 (1/2)^k
- angular - 将类添加到 div 取决于数组项的值
- r - 产生方差分析的限制方法 - 设置为零与总和为零
- php - 在 Wordpress 用户注册上将用户电子邮件设为小写
- sql - 将 VB6 应用程序连接到 SQL Azure 数据存储
- node.js - 在 jenkinsfile 中安装 nodejs
- dictionary - 如何在 Julia 中结合使用两个向量制作字典?