CSS-IN-JS 学习笔记

举报
楚楚冻人玥玥仙女 发表于 2021/11/19 02:49:31 2021/11/19
【摘要】 CSS-IN-JS 学习笔记 文章出处: 拉 勾 大前端 高薪训练营 集成 CSS 代码在 JS 文件 1. 为什么会有 CSS-IN-JS CSS-IN-JS 是 ...

CSS-IN-JS 学习笔记

文章出处: 拉 勾 大前端 高薪训练营

集成 CSS 代码在 JS 文件

1. 为什么会有 CSS-IN-JS

CSS-IN-JS 是 WEB 项目中将 CSS 代码捆绑在 JS 代码中的解决方案,这种方案旨在解决 CSS 的局限性,例如缺乏动态功能,作用域和可移植性。

2. CSS-IN-JS 介绍

CSS-IN-JS 方案的优点:

  1. 让CSS代码拥有独立的作用域,阻止CSS代码泄露到组件外部,防止样式冲突。
  2. 让组件更具可移植性,实现开箱即用,轻松创建松耦合的应用程序。
  3. 让组件更具可重用性,只需编写一次即可,可以在任何地方运行.不仅可以在同一-应用程序中重用组件,而且可以在使用相同框架构建的其他应用程序中重用组件。
  4. 让样式具有动态功能,可以将复杂的逻辑应用于样式规则,如果要创建需要动态功能的复杂UI,它是理想的解决方案。

3. Emotion 库

3.1 Emotion 介绍

Emotion 是一个旨在使用 JS 编写 CSS 样式的库

npm install @emotion/core @emotion/styled

  
 
  • 1

3.2 css 属性支持

  1. JSX Pragma

通知 babel , 不再需要将 jsx 语法转换为 React.createElement 方法, 而是需要转换为 jsx 方法。

/** @jsx jsx */
import { jsx } from '@emotion/core'

  
 
  • 1
  • 2
  1. Babel Preset
npm run eject
npm install @emotion/babel-preset-css-prop

  
 
  • 1
  • 2

在 package.json 文件中找到 babel 属性,加入如下内容:

"presets": [
  "react-app",
  "@emotion/babel-preset-css-prop"
]

  
 
  • 1
  • 2
  • 3
  • 4

文章来源: blog.csdn.net,作者:爱玲姐姐,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jal517486222/article/details/112257172

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。