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 Array.prototype.slice使用说明
Oct 11 Javascript
JS中动态添加事件(绑定事件)的代码
Jan 09 Javascript
快速查找数组中的某个元素并返回下标示例
Sep 03 Javascript
jquery监听div内容的变化具体实现思路
Nov 04 Javascript
原生javascript实现匀速运动动画效果
Feb 26 Javascript
js实现(全选)多选按钮的方法【附实例】
Mar 30 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
Jun 28 Javascript
详解如何使用webpack+es6开发angular1.x
Aug 16 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
Aug 22 Javascript
jQuery中 DOM节点操作方法大全
Oct 12 jQuery
深入浅析javascript继承体系
Oct 23 Javascript
Node.js实现一个HTTP服务器的方法示例
May 13 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 strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
使用原生javascript创建通用表单验证——更锋利的使用dom对象
2011/09/13 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
[01:54]胎教DOTA2 准妈妈玩家现身中国区预选赛
2016/06/26 DOTA
python判断端口是否打开的实现代码
2013/02/10 Python
python实现博客文章爬虫示例
2014/02/26 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
2016/11/16 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
Python闭包函数定义与用法分析
2018/07/20 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
python日志模块logbook使用方法
2019/09/19 Python
python分布式编程实现过程解析
2019/11/08 Python
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
苹果香港官方商城:Apple香港
2016/09/14 全球购物
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
小学社团活动总结
2014/06/27 职场文书
美术专业自荐信
2014/07/07 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
行政复议决定书
2015/06/24 职场文书
Django migrate报错的解决方案
2021/05/20 Python
html5调用摄像头实例代码
2021/06/28 HTML / CSS
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技