如何用Vue3的新特性写不加班也能维护半年的优雅Style?
最近帮团队梳理刚接的老Vue2项目,看了三天差点把键盘砸烂:scoped里全是深度选择器套深度选择器,!important比注释还多,全局样式文件堆了2000行找不到对应组件,刚入职的实习生改个按钮圆角结果把整个导航栏弄变形了,后来和几个大厂的前端朋友聊,发现现在他们用Vue3写项目,样式维护成本能降到原来的1/3,原来半年没人敢碰的页面,新人第二天就能上手,那Vue3到底在样式上给我们加了什么“buff”?怎么用才能写出“可复用、可扩展、无冲突”的代码?今天就用大家听得懂的日常话,把这些问题说透。
Vue3的核心样式新特性,别再只用scoped了!
很多人从Vue2转过来,还抱着老一套的“scoped+全局重置”不放,根本没发现Vue3偷偷摸摸加了三个能让样式效率翻倍的工具——CSS Modules改进、深度选择器优化、v-bind直接绑定JS变量到CSS,这三个特性不是单独用的,组合起来才能发挥最大威力,先一个个拆解清楚。
v-bind绑定JS到CSS:让样式“活”起来,再也不用写重复类名
之前Vue2也有动态样式,要么是用:class/:style堆一堆逻辑,要么是用computed生成对象/数组,稍微复杂点的交互,比如主题切换时的颜色、字体、间距全改,那类名得写五六个,computed里的代码比模板+脚本还长,Vue3直接把这个痛点解决了,一句话就能把JS里的变量、甚至计算属性、ref/reactive里的嵌套属性,绑到CSS里,连单位都可以带。
举个最常见的主题切换例子:之前可能会建两个全局样式文件,或者在每个组件里写两套scoped的类名,然后用computed判断切换状态,现在呢?在根组件或者状态管理里存个theme对象,然后在每个组件的
code前端网