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中怎样判断undefined(比较不错的方法)
Mar 27 Javascript
js简单实现竖向tab选项卡的方法
May 04 Javascript
JavaScript的Vue.js库入门学习教程
May 23 Javascript
浅析Node.js实现HTTP文件下载
Aug 05 Javascript
vuejs动态组件给子组件传递数据的方法详解
Sep 09 Javascript
canvas实现绘制吃豆鱼效果
Jan 12 Javascript
json数据处理及数据绑定
Jan 25 Javascript
jQuery+CSS3实现点赞功能
Mar 13 Javascript
vue-cli + sass 的正确打开方式图文详解
Oct 27 Javascript
jQuery实现的两种简单弹窗效果示例
Apr 18 jQuery
解决Mac node版本升级失败的问题
May 16 Javascript
js实现导航跟随效果
Nov 17 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实现mysql同步的实现方法
2009/10/21 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
javascript,jquery闭包概念分析
2010/06/19 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
2018/10/18 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
Python中为什么要用self探讨
2015/04/14 Python
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
python基本语法练习实例
2017/09/19 Python
python实现excel读写数据
2021/03/02 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
使用Python进行目录的对比方法
2018/11/01 Python
Python调用服务接口的实例
2019/01/03 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
pygame实现非图片按钮效果
2019/10/29 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
keras之权重初始化方式
2020/05/21 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
番木瓜健康和保健产品第一大制造商:Herbal Papaya
2017/04/25 全球购物
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
出纳年终工作总结2014
2014/12/05 职场文书
忠诚教育学习心得体会
2016/01/23 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python
PHP RabbitMQ消息列队
2022/05/11 PHP