Styled-Components
1 基础
styled-components用于管理React样式- 默认情况下,react中引入的样式会作用于其所在组件及其所有子组件,这样就会相互影响
styled-components的核心功能就是,使组件的样式只作用于组件本身,不作用于其子组件
Github地址:styled-components
安装:
1
npm install styled-components --save
2 使用
样式文件后缀都由.css改为.js
2.1 全局样式
- 定义
1 | //style.js |
- 使用
- 以标签的形式放到
App组件中即可生效
- 以标签的形式放到
1 | import React, { Component } from 'react'; |
2.2 组件样式
此定义样式只作用于组件,不会影响其它组件
- 定义
1 | //style.js |
- 使用
1 | import React, { Component } from 'react'; |
3 样式类的使用
- 定义
1 | <组件名 className="类名">首页</组件名> |
- 案例
1 | <NavItem className="left active">首页</NavItem> |
4 标签原生属性的绑定
- t通过
attrs({})设置
1 | export const NavSearch = styled.input.attrs({ |
- 直接加在标签上
1 | <NavSearch placeholder="搜索" ></NavSearch> |
5 标签原生属性样式修改
- 定义
1 | export const 组件名 = styled.标签.attrs({ |
- 案例
1 | export const NavSearch = styled.input.attrs({ |
6 设置子样式标签的样式
- 定义
1 | <SearchWrapper> |
- 案例
1 | <SearchWrapper> |
7 给样式传递参数
传递
- 传值属性名自定义: 例
imgUrl
1
<RecommenItem imgUrl={item.imgUrl}></RecommenItem>
- 传值属性名自定义: 例
接收
${}: 包裹js语法- 通过
props取值
1
2
3export const RecommenItem = styled.div`
background: url(${(props) => props.imgUrl});
`