uView Plus + Vue3 + TypeScript + UniApp 正确引入 UnoCSS(避坑版)

一、前言

在 Vue3 项目里,每次写样式都要:新建 class,切到 css,写完再切回来,久而久之,手已经不想动了。这时候你就会开始怀念一句话:

"如果 Tailwind 能用在 uni-app 就好了。"

于是你发现了 UnoCSS。

然后------

开始踩坑了。

二、实现完整代码

javascript 复制代码
pnpm add unocss@0.55.7 -D

1.创建 uno.config.ts文件,放在 项目根目录(不是 src)。

javascript 复制代码
import {
  defineConfig,
  presetUno,
  presetAttributify,
  presetIcons,
} from 'unocss'

export default defineConfig({
  presets: [
    presetUno(),
    presetAttributify(),
    presetIcons(),
  ],
})

2.配置 vite.config.ts

javascript 复制代码
import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
import UnoCSS from 'unocss/vite'

export default defineConfig({
  plugins: [
    uni(),
    UnoCSS(),
  ],
})

3.main.ts文件引入unocss

javascript 复制代码
import "uno.css";

三、为什么选择 UnoCSS?

unocss、Tailwind、preset-weapp这么多版本为什么选择UnoCSS,因为我在uView Plus文档里面看到 uView Plus默认把单位统一成 px 了,所以的选择是UnoCSS,

一句话版本:

Tailwind 太重,preset-weapp 不合适,UnoCSS 刚刚好。

Tailwind 的问题

  • 体积大
  • 配置复杂
  • 在 uni-app 里体验一般
  • H5 能用,小程序各种限制
    结论:
    不是不能用,是不想折腾。

unocss-preset-weapp 的问题

很多博客会推荐:

javascript 复制代码
pnpm add unocss unocss-preset-weapp -D

但如果你用的是 uView Plus,这里要打一个 ❌。

原因很关键:
uView Plus 已经把单位默认单位设置是px
而 unocss-preset-weapp 的核心目标是:

  • 适配微信小程序
  • 默认 rpx
  • 做样式转换

结果就是:

preset-weapp 想帮你转单位

uView Plus 已经帮你转过了

两边一碰头 ------ 单位体系直接打架

所以在 uView Plus 项目中:不推荐使用 unocss-preset-weapp

正确选型结论

技术栈 推荐方案
uView Plus + UniApp + H5 ✅ UnoCSS
纯微信小程序 ✅ UnoCSS + preset-weapp
Tailwind 原教旨 ❌ 不推荐

四、选择 UnoCSS版本(稳定版)

这里不要追最新版本,uni-app + Vite 对新版本支持并不总是同步。

推荐版本:

javascript 复制代码
pnpm add unocss@0.55.7 -D

这个版本在:

  • uni-app
  • Vite
  • Vue3
  • H5

组合下是最稳的。

相关推荐
极梦网络无忧1 小时前
基于 Vite + Vue3 的组件自动注册功能
前端·javascript·vue.js
雪碧聊技术2 小时前
前端vue代码架子搭建
前端·javascript·vue.js·前端项目代码框架搭建
笨笨狗吞噬者2 小时前
维护 uniapp 小程序端近一年,我想拉一个开发者交流群
前端·程序员·uni-app
极客小云3 小时前
【Electron-Vue 企业级安全启动模板:electron-vue-theme-template 使用指南】
vue.js·安全·electron
计算机学姐3 小时前
基于SpringBoot的校园二手书籍交易系统【个性化推荐+数据可视化统计+我买到的+我卖出的】
vue.js·spring boot·后端·mysql·信息可视化·intellij-idea·mybatis
SuperEugene3 小时前
Vue3 + Element Plus 表单开发实战:防重复提交、校验、重置、loading 统一|表单与表格规范篇
前端·javascript·vue.js
SuperEugene3 小时前
Vue3 + Element Plus 中后台弹窗规范:开闭、传参、回调,告别弹窗地狱|Vue 组件与模板规范篇
开发语言·前端·javascript·vue.js·前端框架
SuperEugene3 小时前
VXE-Table 4.x 实战规范:列配置 + 合并单元格 + 虚拟滚动,避坑卡顿 / 错乱 / 合并失效|表单与表格规范篇
开发语言·前端·javascript·vue.js·前端框架·vxetable
MIka3 小时前
CopilotKit 入门:用 Runtime 和 React Core 搭建真正可用的 AI Copilot
人工智能·typescript·agent
倒计时的尽头是什么3 小时前
避免渲染大量数据造成页面卡顿——虚拟滚动
vue.js