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访问XML数据的实例
Dec 27 Javascript
JavaScript DOM 学习第二章 编辑文本
Feb 19 Javascript
改变状态栏文字的js代码
Jun 13 Javascript
分享15个大家都熟知的jquery小技巧
Dec 02 Javascript
一步步教大家编写酷炫的导航栏js+css实现
Mar 14 Javascript
javascript中href和replace的比较(详解)
Nov 25 Javascript
完美解决JS文件页面加载时的阻塞问题
Dec 18 Javascript
vue2.0多条件搜索组件使用详解
Mar 26 Javascript
protractor的安装与基本使用教程
Jul 07 Javascript
QML实现圆环颜色选择器
Sep 25 Javascript
Vue+Element-UI实现上传图片并压缩
Nov 26 Javascript
面试中canvas绘制图片模糊图片问题处理
Mar 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创建session的方法实例详解
2015/01/27 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
浅析return false的正确使用
2013/11/04 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
JS获取动态添加元素的方法详解
2019/07/31 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
js 函数性能比较方法
2020/08/24 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
Python标准库内置函数complex介绍
2014/11/25 Python
python3抓取中文网页的方法
2015/07/28 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
Python命令行解析模块详解
2018/02/01 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
物业管理计划书
2014/01/10 职场文书
家长建议怎么写
2014/05/15 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android