前言 Vue3不仅对语法进行了升级,而且还新增了一些style特性,这样在模板中可以更加灵活地使用css样式。下面本篇文章给大家总结分享一下Vue3style的新特性,希望对大家有所帮助! Vue3新增style新特性主要有引入了变量和函数,也就是状态驱动的动态css;插槽选择器;自定义注入名称等,其主要的作用就是使css更加地灵活且模板复用性更强。下面我们就一一地介绍一下每个特性的用法。 一、局部样式scoped属性 当hicodepre 转换为:style。example〔datavf3f3eg9〕{color:red;}styletemplatehitemplate 在带有scoped的时候,父组件的样式将不会泄露到子组件当中。不过,子组件的根节点会同时被父组件的作用域样式和子组件的作用域样式影响。这是有意为之的,这样父组件就可以设置子组件根节点的样式,以达到调整布局的目的。二、深度选择器 在带有scoped的时候,它的CSS只会应用到当前组件的元素上。因此,就会产生问题,比如,在给codepre 提示:通过vhtml创建的DOM内容不会被作用域样式影响,但你仍然可以使用深度选择器来设置其样式。 三、插槽选择器 默认情况下,作用域的样式不会影响到渲染出来的内容,因为它们被认为是父组件所持有并传递进来的。使用:slotted伪类以确切地将插槽内容作为选择器的目标。父组件templateChildtemplatedefaultp标签的内容显示红色pclasstext我是子组件插槽内容templateChildtemplate子组件template我是子组件slottemplatestylelangscssscoped。child{:slotted(p。text){color:red;}}style 四、全局选择器 如果想让其中一个样式规则应用到全局,比起另外创建一个codepre 此时,项目中所有组件的p标签的字体颜色都会显示红色。 五、混合使用局部与全局样式 为了满足不同的代码需求,可以在同一个组件中同时包含作用域样式和非作用域样式。templatetemplatestyleglobalstyles对全局组件有效stylestylescopedlocalstyles样式只对该组件有效style 六、支持stylemodule style标签的module属性是很有意思的。codepre 写了module就不需要在style标签上写scoped属性了,因为codepre 八、与组合式API一同使用 注入的类可以通过useCssModuleAPI在setup()和codepre 九、状态驱动的动态CSS 状态驱动的动态CSS我觉得是一个很实用的特性,可以在style内通过vbindCSS函数将CSS的值链接到动态的组件状态,可以通过vbind绑定script中的属性和变量。 实际的值会被编译成哈希化的CSS自定义属性,因此CSS本身仍然是静态的。自定义属性会通过内联样式的方式应用到组件的根元素上,并且在源值变更的时候响应式地更新。templatephellotemplatestylescopedp{绑定theme。color变量color:vbind(theme。color);}style 如果感觉文章实用对你有帮助,欢迎点赞收藏和关注,你的点赞关注就是我的动力。