React 在 styled-components 中使用 TailwindCss

方法1(推荐) : 编译 @apply

编译 Styled-Components 中的 @apply
将 tailwind 编译为 普通css

支持 tailwind 和 windi

Babel : https://github.com/JiangWeixian/babel-plugin-styled-windicss

配置方法

各个脚手架配置 babel 的方式不同, 大家随机应变

.babelrc 例子 : (常见于 webpack 项目中)

{
  "plugins": ["babel-plugin-styled-windicss"]
}

umi 4.0.32 例子:

import { defineConfig } from "umi";

export default defineConfig({  
  extraBabelPlugins: [
    "babel-plugin-styled-windicss"
  ]
});

vite 3.2.4 例子:

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
export default defineConfig({
  plugins: [
    react({
      babel:{
        plugins:["babel-plugin-styled-windicss"]
      }
    }),
  ],
});

使用

let MyDiv = styled.div`
  @apply text-red-500 text-2xl;
`;

让 VSCode 识别语法,并开启代码智能提示

官方 Tailwind CSS IntelliSense VsCode插件中设置
(配置的灵感来源于tailwind-styled-components)

 "tailwindCSS.experimental.classRegex": [        
    "styled`([^`]*)", // styled`...`
    "styled\\.[^`]+`([^`]*)`", // styled.xxx<xxx>`...`
    "styled\\(.*?\\).*?`([^`]*)" // styled(Component)<xxx>`...`
],

最终效果

智能提示 ,代码补全 , 颜色预览
在这里插入图片描述
悬浮提示
在这里插入图片描述

方法2 : 直接写到 className 中

可以让 className 有智能提示,
但 没有 颜色预览 和 鼠标悬浮显示完整 css 信息

配置 VSCode 插件的这个属性

"tailwindCSS.experimental.classRegex": [    
    "className:([^`]*)", // 添加这一行
    "styled`([^`]*)", // styled`...`
    "styled\\.[^`]+`([^`]*)`", // styled.xxx<xxx>`...`
    "styled\\(.*?\\).*?`([^`]*)" // styled(Component)<xxx>`...`
  ],

使用 attrs 来指定 className

let MyDiv = styled.div.attrs({ className: "text-red-600 text-2xl" })``;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值