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脚本
Dec 12 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
Jan 12 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
Jan 15 Javascript
node.js中的buffer.copy方法使用说明
Dec 14 Javascript
js+css实现超简洁的二级下拉菜单效果代码
Sep 07 Javascript
jQuery学习笔记之Ajax用法实例详解
Dec 01 Javascript
JS解决iframe之间通信和自适应高度的问题
Aug 24 Javascript
详解js的异步编程技术的方法
Feb 09 Javascript
BootStrap 标题设置跨行无效的解决方法
Oct 25 Javascript
vue.js整合mint-ui里的轮播图实例代码
Dec 27 Javascript
js利用递归与promise 按顺序请求数据的方法
Aug 30 Javascript
js实现聊天对话框
Feb 08 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下对字符串的递增运算代码
2010/08/21 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
php中fsockopen用法实例
2015/01/05 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
总结对比php中的多种序列化
2016/08/28 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
jQuery live
2009/05/15 Javascript
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
教大家轻松制作Bootstrap漂亮表格(table)
2016/12/13 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
详解Python爬虫的基本写法
2016/01/08 Python
python递归全排列实现方法
2018/08/18 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
2019/08/21 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
Python中qutip用法示例详解
2020/10/02 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
资深地理教师自我评价
2013/09/21 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
千万级用户系统SQL调优实战分享
2022/03/03 MySQL
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python