返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Reactcss-in-js基础介绍与应用
  • 804
分享到

Reactcss-in-js基础介绍与应用

2024-04-02 19:04:59 804人浏览 安东尼
摘要

目录1. 介绍2. 使用1. 介绍 CSS-in-js 是一种技术,而不是一个具体的库实现。简单来说 CSS-in-JS 就是将应用的CSS样式写在 javascript 文件里面,

1. 介绍

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 选择器会有一小段哈希值来保证全局唯一性来避免样式发生冲突。

在react项目中,可以让样式命名不冲突的方案

  • 定义样式名称时,就让它唯一
  • 使用内置的cSSModule
  • css-in-js 把css当作js来使用

2. 使用

首先需要安装相关包:

yarn add styled-components

使用:

App.jsx:

import React, { Component } from 'react'
import Child from './components/Child-07-样式'
class App extends Component {
  render() {
    return (
      <div>
        <Child />
      </div>
    )
  }
}
export default App

Child.jsx:

import React, { Component } from 'react'
// 导入样式组件
import { ChildContainer, TitleContainer, SubTitleContainer, ContentContainer } from './style'
class Child extends Component {
  render() {
    return (
      <ChildContainer>
        {}
        {}
        <div className="title">我是一个child组件</div>
        <SubTitleContainer>我是一个副标题</SubTitleContainer>
        <hr />
        {}
        <ContentContainer color='#00f' size="20">
          我是内容
        </ContentContainer>
      </ChildContainer>
    )
  }
}
export default Child

style.js:

// 使用css-in-js技术方案完成 react项目中的样式编写
// styled-components把样式当作组件来定义和使用,样式就是组件,组件就是样式
import styled from 'styled-components'
// 语法
// export const ChildContainer = styled.html标签名`样式`
export const ChildContainer = styled.div`
  
  font-size: 30px;
  color:#f0f;
  
  .title{
    font-size:18px;
  }
`
export const TitleContainer = styled.div`
  color:red;
  font-size:18px;
`
// 样式继承
export const SubTitleContainer = styled(TitleContainer)`
  font-size:14px;
`
// 在样式中获取样式组件中的属性信息
export const ContentContainer = styled.div`
  color:${props => props.color || '#888'};
  font-size: ${props => props.size || 12}px;
`

到此这篇关于React css-in-js基础介绍与应用的文章就介绍到这了,更多相关React css-in-js内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Reactcss-in-js基础介绍与应用

本文链接: https://lsjlt.com/news/168624.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Reactcss-in-js基础介绍与应用
    目录1. 介绍2. 使用1. 介绍 CSS-in-JS 是一种技术,而不是一个具体的库实现。简单来说 CSS-in-JS 就是将应用的CSS样式写在 JavaScript 文件里面,...
    99+
    2024-04-02
  • JavaScript基础介绍与实例
    一、什么是JavaScript JavaScript是一种具有面向对象能力的、解释性的程序设计语言。更具体一点,它是基于对象和事件驱动并具有相对安全性的客户端脚本语言。因为他不需要在...
    99+
    2024-04-02
  • JSON基础介绍与详细用法
    一、什么是JSON 1、JSON指的是JavaScript对象表示法(JavaScript Object Notation)。2、JSON是轻量级的文本数据交换格式,比XML更小、更...
    99+
    2024-04-02
  • 简单介绍下MySQL的基础应用
    下面讲讲关于MySQL的基础应用,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL的基础应用这篇文章你一定会有所受益。 1.登入到MySQL云服务器[root@...
    99+
    2024-04-02
  • linux用户与文件基础命令介绍(1)
    linux系统是一个多用户多任务的分时操作系统,但系统并不能识别人,它通过账号来区别每个用户。每个linux系统在安装的过程中都要为root账号设置密码,这个root即为系统的第一个账号。每一个用这个账号登...
    99+
    2022-06-04
    命令 文件 基础
  • 【MySQL基础教程】约束的介绍与使用
    前言 本文为 【MySQL基础教程】约束 相关知识,下边将对约束概述,约束演示,外键约束(包括:外键约束介绍、外键约束语法)等内容进行详尽介绍~ 📌博主主页:小新要变强 的主页 &#...
    99+
    2023-09-04
    mysql 数据库 java
  • 【MySQL基础教程】函数的介绍与使用
    前言 本文为 【MySQL基础教程】函数的介绍与使用 相关知识,下边具体将对字符串函数,数值函数,日期函数,流程函数等进行详尽介绍~ 📌博主主页:小新要变强 的主页 👉Java全栈学习路线可参考:【Java...
    99+
    2023-08-18
    mysql 数据库 java
  • Redis基础教程第2节 Redis和NoSql 介绍与应用场景
    NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,...
    99+
    2024-04-02
  • WCF基础介绍并创建简单应用程序
    什么是WCF? WCF, 英文全称(windows Communication Foundation) , 即为windows通讯平台。 windows想到这里大家都知道了 , WC...
    99+
    2024-04-02
  • JavaScript基础语法与数据类型介绍
    目录一、JavaScript语法1、区分大小写2、标识符3、注释4、变量二、JavaScript的数据类型1、Undefined类型2、Null类型3、Boolean类型4、Numb...
    99+
    2024-04-02
  • java基础之NIO介绍及使用
    目录一、NIO二、三大组件三、ByteBuffer的使用四、测试Demo五、Channel的使用六、网络编程七、Selector八、网络编程(多路复用)一、NIO java.nio...
    99+
    2024-04-02
  • js open() 与showModalDialog()方法使用介绍
    此方法可通用,项目开发中经常要用到: 复制代码 代码如下: //w:宽,h:高,url:地址,tag:标记 function showWin(w, h, url, tag) { va...
    99+
    2022-11-15
    open() showModalDialog()
  • Promise的原理和基础用法介绍
    这篇文章主要介绍“Promise的原理和基础用法介绍”,在日常操作中,相信很多人在Promise的原理和基础用法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Promis...
    99+
    2024-04-02
  • hbase shell基础和常用命令介绍
    这篇文章主要介绍“hbase shell基础和常用命令介绍”,在日常操作中,相信很多人在hbase shell基础和常用命令介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”hbase shell基础和常用命...
    99+
    2023-06-09
  • C#中委托的基础介绍与实现方法
    这篇文章主要讲解了“C#中委托的基础介绍与实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#中委托的基础介绍与实现方法”吧!目录前言关于委托委托的实现一、基本实现方式二、使用委托时的...
    99+
    2023-06-20
  • Android基础之常用控件属性介绍
    目录常用控件之常用属性控件可见性TextViewButtonEditTextImageViewProgressBarAlertDialogProgressDialogToastMen...
    99+
    2024-04-02
  • MySQL中in与exists的使用及区别介绍
    先放一段代码 for(int i=0;i<1000;i++){ for(int j=0;j<5;j++){ System.out.println("hello"); } } for...
    99+
    2024-04-02
  • java基础之包装类的介绍及使用
    1. 包装类的介绍 针对八种基本数据类型定义相应的引用类型--包装类(封装类),有了类的热点后,就可以调用类中的方法 2. 基本数据类型 --> 包装类:调用包装类的构造器,...
    99+
    2024-04-02
  • React过渡动画组件基础使用介绍
    目录1. 基础使用2. 将animate.css集成到csstranistion中3. 列表过渡4. switchTransition动画5. 路由切换过渡6. 高阶组件实现路由切换...
    99+
    2024-04-02
  • linux下rsync的基础介绍和高级用法
    这篇文章主要介绍“linux下rsync的基础介绍和高级用法”,在日常操作中,相信很多人在linux下rsync的基础介绍和高级用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下rsync的基础介...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作