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控制回车事件的代码
Feb 20 Javascript
JSON.stringify 语法实例讲解
Mar 14 Javascript
js 弹出框只弹一次(二次修改之后的)
Nov 26 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
Oct 17 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
Jun 10 Javascript
原生js实现节日时间倒计时功能
Jan 18 Javascript
在 Angular 中实现搜索关键字高亮示例
Mar 21 Javascript
微信小程序的日期选择器的实例详解
Sep 29 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
Dec 22 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
Jan 10 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
Sep 13 Javascript
vue项目如何打包之项目打包优化(让打包的js文件变小)
Apr 30 Vue.js
微信小程序学习总结(四)事件与冒泡实例分析
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(1)
2006/10/09 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
javascript eval和JSON之间的联系
2009/12/31 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
Javascript中封装window.open解决不兼容问题
2014/09/28 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
checkbox在vue中的用法小结
2018/11/13 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
2019/08/12 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
Python实现的快速排序算法详解
2017/08/01 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
python Gabor滤波器讲解
2020/10/26 Python
Python Selenium库的基本使用教程
2021/01/04 Python
什么叫做SQL注入,如何防止
2016/10/04 面试题
美容师的职业规划书
2013/12/27 职场文书
财务工作者先进事迹材料
2014/01/17 职场文书
单位介绍信范文
2014/01/18 职场文书
幼儿园运动会加油词
2014/02/14 职场文书
五四演讲稿范文
2014/09/03 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
深入理解python协程
2021/06/15 Python
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL