Vue3 style中新增的特性有哪些及怎么用(style,vue3,编程语言)

时间:2024-05-05 13:25:21 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

Vue3 style中新增的特性有哪些及怎么用

style新特性

Vue3.2版本对单文件组件的style样式进行了很多升级,如局部样式、css变量以及样式暴露给模板使用等。(学习视频分享:vue视频教程)

一、局部样式

<style> 标签带有 scoped attribute 的时候,它的 CSS 只会应用到当前组件的元素上:

<template><divclass="example">hi</div></template><stylescoped>.example{color:red;}</style>

二、深度选择器

处于 scoped 样式中的选择器如果想要做更“深度”的选择,也即:影响到子组件,可以使用 :deep() 这个伪类:

<stylescoped>.a:deep(.b){/*...*/}</style>

通过 v-html 创建的 DOM 内容不会被作用域样式影响,但你仍然可以使用深度选择器来设置其样式。

三、插槽选择器

默认情况下,作用域样式不会影响到 <slot/> 渲染出来的内容,因为它们被认为是父组件所持有并传递进来的。使用 :slotted 伪类以确切地将插槽内容作为选择器的目标:

<stylescoped>:slotted(div){color:red;}</style>

四、全局选择器

如果想让其中一个样式规则应用到全局,比起另外创建一个 <style>,可以使用 :global 伪类来实现:

<stylescoped>:global(.red){color:red;}</style>

五、混合使用局部与全局样式

你也可以在同一个组件中同时包含作用域样式和非作用域样式:

<style>/*globalstyles*/</style><stylescoped>/*localstyles*/</style>

六、支持CSS Modules

<style module> 标签会被编译为 CSS Modules 并且将生成的 CSS 类键暴露给组件:

1、 默认以$style 对象暴露给组件;

<template><p:class="$style.red">Thisshouldbered</p></template><stylemodule>.red{color:red;}</style>

2、可以自定义注入module名称

<template><p:class="classes.red">red</p></template><stylemodule="classes">.red{color:red;}</style>

七、与setup一同使用

注入的类可以通过 useCssModule API 在 setup()<script setup> 中使用:

<scriptsetup>import{useCssModule}from'vue'//默认,返回<stylemodule>中的类constdefaultStyle=useCssModule()//命名,返回<stylemodule="classes">中的类constclassesStyle=useCssModule('classes')</script>

八、动态 CSS

单文件组件的 <style> 标签可以通过 v-bind 这一 CSS 函数将 CSS 的值关联到动态的组件状态上:

<scriptsetup>consttheme={color:'red'}</script><template><p>hello</p></template><stylescoped>p{color:v-bind('theme.color');}</style>
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Vue3 style中新增的特性有哪些及怎么用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:jquery如何判断元素有没有disabled属性下一篇:

10 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18