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过滤数组重复元素的方法
Sep 05 Javascript
javascript实现类似java中getClass()得到对象类名的方法
Jul 27 Javascript
浅谈JavaScript 的执行顺序
Aug 07 Javascript
浅谈javascript的Array.prototype.slice.call
Aug 31 Javascript
JavaScript+CSS无限极分类效果完整实现方法
Dec 22 Javascript
详解angularjs利用ui-route异步加载组件
May 21 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
Jun 13 Javascript
微信小程序 sha1 实现密码加密实例详解
Jul 06 Javascript
vue 开发一个按钮组件的示例代码
Mar 27 Javascript
Vue的H5页面唤起支付宝支付功能
Apr 18 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
React+EggJs实现断点续传的示例代码
Jul 07 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
在WIN98下以apache模块方式安装php
2006/10/09 PHP
PHP动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
function foo的原型与prototype属性解惑
2010/11/19 Javascript
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
常用的JQuery函数及功能小结
2016/03/24 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
JS路由跳转的简单实现代码
2017/09/21 Javascript
Vue常用指令详解分析
2018/08/19 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
[01:00:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第三场 1月10日
2021/03/11 DOTA
python爬虫常用的模块分析
2014/08/29 Python
常见的python正则用法实例讲解
2016/06/21 Python
python使用mysql数据库示例代码
2017/05/21 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
Python如何将函数值赋给变量
2020/04/28 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
存储过程和sql语句的优缺点
2014/07/02 面试题
营销人才自我鉴定范文
2013/12/25 职场文书
信用卡工资证明范本
2014/10/17 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
八一建军节慰问信
2015/02/14 职场文书
会计专业自荐信范文
2015/03/05 职场文书