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 节点遍历函数
Mar 28 Javascript
基于jquery的气泡提示效果
May 31 Javascript
Javascript中正则表达式的全局匹配模式分析
Apr 26 Javascript
JS实现文字向下滚动完整实例
Feb 06 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
Aug 04 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
May 20 Javascript
用director.js实现前端路由使用实例
Jan 27 Javascript
微信小程序url与token设置详解
Sep 26 Javascript
vue组件间通信子与父详解(二)
Nov 07 Javascript
Vue插件打包与发布的方法示例
Aug 20 Javascript
JavaScript常见鼠标事件与用法分析
Jan 03 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
Apr 15 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中的一些数组排序方法分享
2012/07/20 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
Javascript操作dom对象之select全面解析
2017/04/24 Javascript
vue底部加载更多的实例代码
2018/06/29 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
[01:18:33]Secret vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
python实现二维数组的对角线遍历
2019/03/02 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
什么是事务?事务有哪些性质?
2012/03/11 面试题
物流经理自我评价
2013/09/23 职场文书
财务会计专业应届毕业生求职信
2013/10/18 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
美术教学感言
2014/02/22 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
武侯祠导游词
2015/02/04 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
通知范文怎么写
2015/04/16 职场文书
付款证明模板
2015/06/19 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL