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 相关文章推荐
jquery下实现overlay遮罩层代码
Aug 25 Javascript
Js+Flash实现访问剪切板操作
Nov 20 Javascript
javascript模块化是什么及其优缺点介绍
Sep 02 Javascript
js图片实时加载提供网页打开速度
Sep 11 Javascript
使用 js+正则表达式为关键词添加链接
Nov 11 Javascript
AngularJS基础 ng-readonly 指令简单示例
Aug 02 Javascript
node.js中cluster的使用教程
Jun 09 Javascript
解析Vue2 dist 目录下各个文件的区别
Nov 22 Javascript
微信小程序网络层封装的实现(promise, 登录锁)
May 08 Javascript
如何在微信小程序中实现Mixins方案
Jun 20 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
Apr 26 Javascript
JavaScript组合继承详解
Nov 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
php eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
总结一些js自定义的函数
2006/08/05 Javascript
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
python 正则式 概述及常用字符
2009/05/07 Python
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
Python 创建子进程模块subprocess详解
2015/04/08 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
python3实现简单飞机大战
2020/11/29 Python
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
珍珠奶茶店创业计划书
2014/01/11 职场文书
中学生期末评语
2014/02/03 职场文书
销售员态度差检讨书
2014/10/26 职场文书
保护校园环境倡议书
2015/04/28 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书
为什么中国式养孩子很累?
2019/08/07 职场文书
浅谈Python数学建模之固定费用问题
2021/06/23 Python
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js