vue样式穿透 ::v-deep的具体使用


Posted in Javascript onJune 04, 2020

之前在项目中用到了 vant,使用特别简单,而且组建也非常的丰富。即时这样,在项目中肯定也需要用额外的样式来打造自己的应用。直接在 <style lang="scss" scoped> .... </style> 中编写的话只会影响当前组件内的样式,但如果去掉scoped话又会影响全局样式。想了好多方法,都没得到很好的解决。

百度之后发现 可以用 /deep/或::v-deep来解决***(不过在vue3.0的环境下,使用/deep/时,编译会报错)***。没想到官方文档中其实早就给出了解决方案,怪自己没有认真看过文档,对vue的掌握还是不够熟悉啊,得好好学习了。

深度作用选择器

如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,你可以使用 >>> 操作符:
<style scoped> .a >>> .b { /* ... */ } </style> 上述代码将会编译成:
.a[data-v-f3f3eg9] .b { /* … */ }

有些像 Sass 之类的预处理器无法正确解析 >>>。这种情况下你可以使用 /deep/ 或 ::v-deep 操作符取而代之——两者都是 >>> 的别名,同样可以正常工作。

1、>>>

如果vue的style使用的是css,那么则

<style lang="css" scoped>
.a >>> .b { 
 /* ... */ 
}
</style>

但是像scss等预处理器却无法解析>>>,所以我们使用下面的方式.

2、/deep/

<style lang="scss" scoped>
.a{
 /deep/ .b { 
  /* ... */ 
 }
} 
</style>

但是有些开发者反应,在vue-cli3编译时,deep的方式会报错或者警告。
此时我们可以使用第三种方式

3、::v-deep

切记必须是双冒号

<style lang="scss" scoped>
.a{
 ::v-deep .b { 
  /* ... */ 
 }
} 
</style>

使用场景:

当我们需要覆盖element-ui中的样式时只能通过深度作用选择器

style为css时的写法如下

.a >>> .b {
  ***
 }

style使用css的预处理器(less, sass, scss)的写法如下

第一种/deep/

/deep/ .a {
  ***
 }

第二种::v-deep

::v-deep .a{
 ***
}

建议使用第二种方式,/deep/在某些时候会报错,::v-deep更保险并且编译速度更快.

到此这篇关于vue样式穿透 ::v-deep的具体使用的文章就介绍到这了,更多相关vue ::v-deep内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JS 强制设为首页的代码
Jan 31 Javascript
JavaScript 验证浏览器是否支持javascript的方法小结
May 17 Javascript
简单常用的幻灯片播放实现代码
Sep 25 Javascript
$(document).ready(function() {})不执行初始化脚本
Jun 19 Javascript
javascript 应用小技巧方法汇总
Jul 05 Javascript
jquery制作图片时钟特效
Mar 30 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
Feb 16 Javascript
jQuery实现的自动加载页面功能示例
Sep 04 Javascript
用jQuery实现圆点图片轮播效果
Mar 19 Javascript
基于Vue.js实现tab滑块效果
Jul 23 Javascript
vue动态设置img的src路径实例
Sep 18 Javascript
通过JS运行机制的角度说说作用域
Mar 12 Javascript
微信小程序学习总结(四)事件与冒泡实例分析
Jun 04 #Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
Jun 04 #Javascript
微信小程序实现watch监听
Jun 04 #Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
Jun 04 #Javascript
实现一个Vue自定义指令懒加载的方法示例
Jun 04 #Javascript
vue基础知识--axios合并请求和slot
Jun 04 #Javascript
vue webpack build资源相对路径的问题及解决方法
Jun 04 #Javascript
You might like
PHP生成带有雪花背景的验证码
2006/10/09 PHP
Laravel框架表单验证详解
2014/09/04 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
2016/01/25 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
Vue插值、表达式、分隔符、指令知识小结
2018/10/12 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
Python命名空间详解
2014/08/18 Python
python使用arp欺骗伪造网关的方法
2015/04/24 Python
Python sys.argv用法实例
2015/05/28 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
Python List cmp()知识点总结
2019/02/18 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
python3 enum模块的应用实例详解
2019/08/12 Python
python中count函数简单的实例讲解
2020/02/06 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
大学生就业自荐书
2014/06/16 职场文书
车间核算员岗位职责
2014/07/01 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
2014年后勤工作总结
2014/11/18 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书
python 经纬度求两点距离、三点面积操作
2021/06/03 Python
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis
MySQL的安装与配置详细教程
2021/06/26 MySQL
ConditionalOnProperty配置swagger不生效问题及解决
2022/06/14 Java/Android