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 相关文章推荐
showModelessDialog()使用详解
Sep 21 Javascript
Dom 是什么的详细说明
Oct 25 Javascript
Javascript图像处理思路及实现代码
Dec 25 Javascript
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
JavaScript中的闭包
Feb 24 Javascript
Bootstrap Modal遮罩弹出层代码分享
Nov 21 Javascript
BootStrap轮播HTML代码(推荐)
Dec 10 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
Oct 19 Javascript
JS实现动态生成html table表格的方法分析
Jul 11 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
Sep 01 Javascript
javascript定时器的简单应用示例【控制方块移动】
Jun 17 Javascript
vue实现购物车功能(商品分类)
Apr 20 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
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
PHP伪静态页面函数附使用方法
2008/06/20 PHP
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
新手学习PHP的一些基础知识分享
2011/07/27 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
iOS10推送通知开发教程
2016/09/19 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
javascript indexOf函数使用说明
2008/07/03 Javascript
JavaScript的public、private和privileged模式
2009/12/28 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
javascript 节点排序 2
2011/01/31 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
python网络编程示例(客户端与服务端)
2014/04/24 Python
浅谈Python基础—判断和循环
2019/03/22 Python
python浪漫表白源码
2019/04/05 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
html5指南-3.如何实现html元素拖拽功能
2013/01/07 HTML / CSS
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
保险专业大专生求职信
2013/10/26 职场文书
家长给幼儿园的表扬信
2014/01/09 职场文书
论文指导教师评语
2014/04/28 职场文书
欢迎家长标语
2014/10/08 职场文书
2014年民警工作总结
2014/11/25 职场文书
获奖感言一句话
2015/07/31 职场文书
护理自荐信
2019/05/14 职场文书
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python