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 相关文章推荐
JavaScript学习笔记(二) js对象
Oct 25 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
Apr 11 Javascript
Js放到HTML文件中的哪个位置有什么区别
Aug 21 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
Sep 22 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
Feb 15 Javascript
JavaScript的函数式编程基础指南
Mar 19 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
Jan 06 Javascript
Express本地测试HTTPS的示例代码
Jun 06 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
Aug 13 Javascript
JS求解两数之和算法详解
Apr 28 Javascript
用vue 实现手机触屏滑动功能
May 28 Javascript
JavaScript实现移动小精灵的案例代码
Dec 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 XML操作的各种方法解析(比较详细)
2010/06/17 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
Python之web模板应用
2017/12/26 Python
django的登录注册系统的示例代码
2018/05/14 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
简述python Scrapy框架
2020/08/17 Python
Python描述数据结构学习之哈夫曼树篇
2020/09/07 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
基层工作经历证明
2014/01/13 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
医疗纠纷协议书
2014/04/16 职场文书
专家推荐信模板
2014/05/09 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
学子宴致辞大全
2015/07/27 职场文书
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL
深入浅析Django MTV模式
2021/09/04 Python