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

2023-05-16

Vue3对style样式进行了升级,下面本篇文章给大家汇总分享一下Vue3 style的新特性,希望对大家有所帮助!

Vue3.0后推出的setup函数,像写JS一样开发Vue组件,此外style也加入了很多新特性,如引入了变量和函数,使css复用性更强...

style新特性

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

一、局部样式

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

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

二、深度选择器

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

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

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

三、插槽选择器

默认情况下,作用域样式不会影响到 <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前端开发、编程基础视频)

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

聊聊Vue3 style中新增了哪些特性(汇总) 的相关文章

  • vue3中的Suspense组件

    用法 插槽名字固定 形成一个异步组件 比如这边 如果我们像之前那样进行静态引入的话 比如 child组件迟迟没有加载完毕 那么整个app vue组件也不会出现 而是要等到child加载完毕了之后再一起出现 而使用了defineAsyncCo
  • 自己封装 vue3+ts 组件库并且发布到 NPM

    自己封装 vue3 ts 组件库并且发布到 NPM 创建项目 pnpm create vite 配置 package json 按照提示创建好项目 然后再 package json 中进行如下配置 name tribiani vue too
  • vue.js -- 事件绑定

    目录 绑定事件 定义事件 直接写表达式 获取事件对象event 获取自定义参数 获取参数和事件对象event 事件绑定多个函数 修饰符 事件修饰符 按键修饰符 鼠标修饰符 精确修饰符 绑定事件 定义事件 代码演示
  • 【Token+Vue3】token无感刷新

    token刷新介绍 单token 用于登录判断 toekn过期自动刷新 拒绝一切前端判断token 数据库存储token最后刷新时间与刷新次数 刷新次数上限20次 未登录3天需重新登录来刷新token token刷新规则 token过期自动
  • vue3 + vite 在线预览docx, pdf, pptx(内外网)并实现移动端适配

    一 内网 1 docx 使用docx preview 安装插件 npm i docx preview S 引入依赖 docx import renderAsync from docx preview let docx import meta
  • vue3+vite的项目中实现右键事件的神器

    前言 vue3 vite的项目中实现右键事件的神器 imengyu vue3 context menu 实现效果 使用步骤 1 安装 npm cnpm pnpm yarn 都可以 装上下面插件 imengyu vue3 context me
  • vue3+Element-plus el-select 下拉表格组件(2023-08-21 解决TSelectTable组件表单编辑回显设置defaultSelectVal 无效)

    2023 08 21 解决TSelectTable组件表单编辑回显设置defaultSelectVal 无效 2023 06 28 TSelectTable组件新增查询条件 效果如下 一 最终效果 二 代码示例
  • 前端页面添加全局水印或指定页面添加水印

    前言 为了防止信息泄露或知识产权被侵犯 在web的世界里 对于图片文档等增加水印处理是十分有必要的 水印的添加根据环境可以分为两大类 前端浏览器环境添加和后端服务环境添加 今天介绍的就是通过canvas创建一张含有水印信息的背景图片 通过v
  • vue3的provide

    provide 和 inject 通常成对一起使用 使一个祖先组件作为其后代组件的依赖注入方 无论这个组件的层级有多深都可以注入成功 只要他们处于同一条组件链上 provide 提供一个值 可以被后代组件注入 inject 注入一个由祖先组
  • Vue3全网最细介绍使用

    文章目录 一 Vue3介绍 二 Vue3项目创建 三 Setup 四 ref与reactive 五 setup context 六 计算属性 七 监听属性 八 Vue3生命周期 九 自定义hook函数 十 toRef 一 Vue3介绍 1
  • vue3中使用vueQuill富文本编辑器详细教程,图片上传-图片压缩

    vueQuill是支持vue3的富文本编辑器组件 使用简单方便 官方网址 https vueup github io vue quill 效果图 1 安装 在官网有详细的安装教程 npm或者yran下载 npm install vueup
  • vue3.2 对el-table 树型结构数据的处理(干货)

    vue3 2 对el table 树型结构数据的处理 干货 将偏平数据转为树状结构的数据 封装了两种方法 将一维数组处理成带children的el tree树状数据结构 第一种方法 使用递归的方式处理偏平化数据 Method 使用递归的方式
  • vue3+ts深入组件(四)动态组件

    一 引入 掌握程度 了解 使用Vue时 有时会遇到tab切换 如下图 1 可实现方法 1 v if 2 component动态组件 3 使用vue Router 路由切换 2 对比 第一种方法 v if 这可能是我们能最快想到的解决办法 但
  • 解决vite首次加载很慢的问题

    目录 vite很快吗 为什么说vite快 为什么说vite慢 解决方案 附加 vite很快吗 vite要比webpack快 是的 真的很快 但个人感受 默认情况下 vite项目的启动确实比webpack快 但如果某个界面是首次进入 且依赖比
  • Vue实例挂载的过程

    一 思考与分析 我们都听过知其然知其所以然这句话 那么不知道是否思考过new Vue 这个过程中究竟做了些什么 过程中是如何完成数据的绑定 又是如何将数据渲染到视图的等等 首先找到vue的构造函数 源码位置 src core instanc
  • vue3知识点:Suspense组件

    文章目录 五 新的组件 3 Suspense 案例 完整代码 本人其他相关文章链接 五 新的组件 3 Suspense 等待异步组件时渲染一些额外内容 让应用有更好的用户体验 使用步骤 第1步 异步引入组件 import defineAsy
  • 07Vue3-Vuex中计算数学getters应用

    getters Home vue
  • vue3学习笔记(1)script引入vue3实现简单应用

    Vue3专栏入口 目录 一 脚本引入简单使用 二 双向绑定的基本表现 一 脚本引入简单使用 script引入 简单使用实现数据渲染 div h1 counter num h1 div
  • vue项目中批量删除如何实现的

    简单回答 与单个删除的接口为同一个 然后通过数组对象的id来删除
  • 【Vue3.0实战逐步深入系列】使用elementui组件库element-plus美化投票功能

    千字长文 熬夜更新 原创不易 多多支持 感谢大家 前言 小伙伴们大家好 前面一篇文章中我们利用vue3 0实现了一个超级简单的投票功能 虽然功能是实现了也达到了巩固vue3 0知识点的目的 但是页面没有添加任何样式也没有进行任何的UI设计

随机推荐

  • 分享几种实用的Node.js调试方法,快来收藏吧!!

    本篇文章给大家介绍Nodejs调试的几种方式 有一定的参考价值 xff0c 有需要的朋友可以参考一下 xff0c 希望对大家有所帮助 相关推荐 xff1a nodejs 教程 第一种 1 打开 vscode 内置终端 xff0c 右上角选择
  • 聊聊在VSCode中怎么点击DOM 自动定位到相应代码行?

    如何在 Vue 项目中 xff0c 通过点击 DOM 自动定位VSCode中的代码行 xff1f 下面本篇文章就来给大家分享一个插件 xff0c 并聊聊实现原理 xff0c 快来收藏吧 xff01 现在大型的 Vue项目基本上都是多人协作开
  • 一文深入了解 Node 中的事件循环

    Node js是单线程的语言 xff0c 是通过事件循环处理非阻塞I O操作的 下面本篇文章带大家详细了解 Node 中的事件循环 xff0c 希望对大家有所帮助 xff01 Node js 做为 JavaScript 的服务端运行时 xf
  • 深入解析vue中的key,看看key到底能拿来干嘛!

    key到底有什么用途 xff1f 下面本篇文章给大家深度解析一下vue中的key xff0c 看看key到底能拿来干嘛 xff0c 希望对大家有所帮助 xff01 vue中关于key的深度解析 key到底有什么用途 先来看官方解释 key属
  • 一文聊聊Node.js中的模块路径解析

    本篇文章带大家了解一下Node js中的模块路径解析 xff0c 介绍一下Node模块路径解析方法 xff0c 希望对大家有所帮助 xff01 require案例 当前有一个项目当前项目路径 Users rainbow Documents
  • 聊聊node中怎么借助第三方开源库实现网站爬取功能

    本篇文章给大家介绍一下node中借助第三方开源库轻松实现网站爬取功能的方法 xff0c 希望对大家有所帮助 xff01 nodejs实现网站爬取功能 第三方库介绍 request 对网络请求的封装 cheerio node 版本的 jQue
  • Angular中非父子组件间怎么通讯

    Angular中非父子组件间怎么通讯 xff1f 本篇文章给大家介绍一下Angular非父子组件之间通过服务通讯的方法 xff0c 希望对大家有所帮助 xff01 其实提到父子组件之间传值 xff0c 对我们来说 xff0c 再熟悉不过了
  • 软件测试 | 测试开发 | Django+Celery框架自动化定时任务开发

    本章介绍使用DjCelery即Django 43 Celery框架开发定时任务功能 xff0c 在Autotestplat平台上实现单一接口自动化测试脚本 业务场景接口自动化测试脚本 App自动化测试脚本 Web自动化测试脚本等任务的定时执
  • 认识一下vue中的$attrs和$listeners属性,聊聊用法

    本篇文章带大家了解一下vue中封装组件利器 xff1a attrs listeners属性 xff0c 看看它们的用法 xff0c 希望对大家有所帮助 xff01 多级组件嵌套需要传递数据时 xff0c 通常使用的方法是通过vuex 但仅仅
  • 深入了解node.js中的module-alias(分享一些避坑方法)

    本篇文章带大家了解一下node js中的module alias xff0c 介绍一下module alias原理 module alias的一个常见问题 xff08 坑 xff09 xff0c 希望对大家有所帮助 xff01 首先有必要介
  • 聊聊Nodejs中的核心模块:stream流模块(看看如何使用)

    本篇文章带大家详细理解一下Nodejs中的stream流模块 xff0c 介绍一下stream流概念及用法 xff0c 希望对大家有所帮助 xff01 stream流模块 xff0c 是Node中非常核心的一个模块 xff0c 其它模块如f
  • 深入解析下vue3中的渲染系统

    本篇文章给大家深入解析一下vue3中的渲染系统 xff0c 希望对大家有所帮助 xff01 提到马拉松 xff0c 大家都知道马拉松是世界上最长的田径项目 xff08 全程42 195公里 xff09 xff0c 是所有体育运动中体力消耗最
  • 一文聊聊Node.js中的EventEmitter模块

    EventEmitter是 Node js 的内置模块 xff0c 为我们提供了事件订阅机制 下面本篇文章就来带大家了解一下Node js中的EventEmitter模块 xff0c 介绍一下它的用法 xff0c 希望对大家有所帮助 xff
  • 一起聊聊angular的样式隔离实现机制

    Angular是怎么进行样式隔离的 xff1f 下面本篇文章就来和大家一起聊聊angular的样式隔离实现机制 xff0c 希望对大家有所帮助 xff01 angular 以组件为基本单位 我们编写一个一个的组件 xff0c 再将这些组件组
  • 聊聊Node.js中如何实现Stream流(可读、可写、双工和转换流)

    本篇文章带大家了解一下Node中的之Stream xff0c 介绍一下引入 Stream xff0c 实现可读流 可写流 双工流和转换流的方法 xff0c 希望对大家有所帮助 xff01 引入 Stream 假设我们有这么一个需求 xff0
  • 带你详解vue中实现全页面或局部刷新的方法

    vue中怎么实现页面刷新 xff1f 下面本篇文章给大家介绍一下在vue中实现全页面刷新和局部刷新的方法 xff0c 希望对大家有所帮助 xff01 一 全页面刷新 1 修改 App vue xff0c 代码如下 xff1a lt temp
  • 深入浅析Angular指令如何保持关注点的分离?

    Angular指令如何保持关注点的分离 xff1f 本篇文章带大家了解一下通过 Angular 指令保持关注点分离的方法 xff0c 希望对大家有所帮助 xff01 假设在我们的应用程序中有一个日期选择器组件 用户每次更改日期的时 xff0
  • VSCode开发Python,这 14 个插件不可错过!

    VSCode怎么开发Python xff1f 下面本篇文章给大家整理分享VSCode中开发Python的14 个不可错过插件 xff0c 快来收藏 xff0c 看看有没有需要 xff01 可以说 xff0c Visual Studio Co
  • 软件测试 | 测试开发 | 使用charles 修改服务器返回数据

    使用charles 修改服务器返回数据 相信大家在做测试时 xff0c 一定有现有的返回结果不能覆盖到自己需要测试的全部场景的情况 xff0c 为了方便我们测试一些特殊情况 xff0c 我们就需要让服务器返回一些指定的内容以实现我们的测试c
  • 聊聊Vue3 style中新增了哪些特性(汇总)

    Vue3对style样式进行了升级 xff0c 下面本篇文章给大家汇总分享一下Vue3 style的新特性 xff0c 希望对大家有所帮助 xff01 Vue3 0后推出的setup函数 xff0c 像写JS一样开发Vue组件 xff0c