聊聊Vue3 style中新增了哪些特性(汇总)

三、插槽选择器

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

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

四、全局选择器

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

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

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

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

<style> /* global styles */ </style>   <style scoped> /* local styles */ </style>

六、支持CSS Modules

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

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

<template>   <p :class="$style.red">     This should be red   </p> </template>   <style module> .red {   color: red; } </style>

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

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

七、与setup一同使用

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

<script setup> import { useCssModule } from 'vue'   // 默认, 返回 <style module> 中的类 const defaultStyle = useCssModule()   // 命名, 返回 <style module="classes"> 中的类 const classesStyle = useCssModule('classes') </script>

八、动态 CSS

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

<script setup> const theme = {   color: 'red' } </script>   <template>   <p>hello</p> </template>   <style scoped> p {   color: v-bind('theme.color'); } </style>

(完)

(学习视频分享:web前端开发、编程基础视频)

商匡云商
Logo
注册新帐户
对比商品
  • 合计 (0)
对比
0
购物车