css-in-js

一、介绍

​ CSS-in-JS是一种技术,而不是一个具体的库实现。简单来说CSS-in-JS就是将应用的CSS样式写在JavaScript文件里面,而不是独立为一些css,scss或less之类的文件,这样你就可以在CSS中使用一些属于JS的诸如模块声明,变量定义,函数调用和条件判断等语言特性来提供灵活的可扩展的样式定义。CSS-in-JS在React社区的热度是最高的,这是因为React本身不会管用户怎么去为组件定义样式的问题,而Vue有属于框架自己的一套定义样式的方案。

​ styled-components 应该是CSS-in-JS最热门的一个库,通过styled-components,你可以使用ES6的标签模板字符串语法,为需要styled的Component定义一系列CSS属性,当该组件的JS代码被解析执行的时候,styled-components会动态生成一个CSS选择器,并把对应的CSS样式通过style标签的形式插入到head标签里面。动态生成的CSS选择器会有一小段哈希值来保证全局唯一性来避免样式发生冲突

二、安装

npm i -S styled-components

三、使用

jsx 

import React, { Component } from 'react'
import {
  DivStyled,
  QurireBtn,
  ResetBtn,
  ZIDBtn
} from './styledhome'
export default class Home extends Component {
  render() {
    return (
      <div>
          <h3>styled案例</h3>
          {/* 老式写法 */}
          {/* <div style={{ width:'100px',height:'100px',backgroundColor:'red'}}>
              <p>我是文本</p>
          </div> */}
          {/* 新式的写法 */}
          <DivStyled>
              <p>我是文本</p>
          </DivStyled>
          <QurireBtn>确定按钮</QurireBtn>
          <ResetBtn>取消按钮</ResetBtn>
          <ZIDBtn color="pink" size="12px">自定义按钮</ZIDBtn>
      </div>
    )
  }
}

 style

import styled from 'styled-components'
//给我们的第一个div加样式
// 这是样式组件  名字大写  其他styled。div  是用来替换div的
export const DivStyled = styled.div`
   width:100px;
   height:100px;
   background-color: red;
   p{
       font-size: 22px;
   }
`
//确定按钮样式
export const QurireBtn = styled.button`
  width:100px;
  height:25px;
  border: 1px solid #ccc;
  color:blue;
`
//取消钮样式   样式的继承
export const ResetBtn = styled(QurireBtn)`
  color:red;
`
//自定义btn  字体颜色我想着 谁调用当前组件 谁传递颜色 
// 传递属性进来  设置默认值
export const ZIDBtn = styled(QurireBtn)`
  color: ${ props=> props.color ? props.color : "blue" }; //写法1
  font-size: ${ props => props.size || '18px' }; //写法2

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大聪明码农徐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值