vue中深度选择器图文详解

 更新时间:2023年06月09日 10:29:35   作者:喝西瓜汁的兔叽Yan  
在Vue的开发中,我们经常会用到外部组件库,下面这篇文章主要给大家介绍了关于vue中深度选择器的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

scoped的作用

scoped
可以使当前的样式只在自己当前的组件内起作用。为了防止在一个组件内引入了子组件,而子组件没有加scoped。这个时候如果父子组件有相同的类名,就会产生样式的影响。
原理:
加了scoped就相当于给当前组件所有的标签添加一个【data-v-hash】的属性,而vue中采用的是属性选择器的方式来进行解析,具体解析如下图:

<style scoped>
</style>

scoped对父子组件的影响

首先,我定义了一个父组件和子组件(child)

父组件:

子组件(加了scoped):

效果:

我们可以看到,子组件加了scoped后,父组件对h3的css样式就不会影响到子组件,如果子组件没加scoped,就会影响到也变成红色。

那么,我们就是想在子组件有scoped的情况下,影响到子组件的样式怎么办?就引出了深度选择器

深度选择器

首先,我们来认识下三个深度选择器:

原生css: >>> (在没有用less/scss的时候使用)
less: /deep/
scss: ::v-deep(如果使用了预处理器都可以使用这个(推荐))

我们上面的实例没有用到scss和less,所以我们使用>>>

效果:

子组件也变成了红色

附加:

/deep/
如果项目中用到了预处理器 sass less scss 会因为无法编辑而报错 可以使用/deep/
注意:vue-cli3以上版本不可以

<style lang="scss" scoped>
/*用法1*/
.a {
 /deep/ .b { 
  /* ... */
 }
} 
/*用法2*/
.a /deep/ .b { 
  /* ... */
 }
</style>

::v-deep 如果使用了预处理器都可以使用

<style lang="scss" scoped>
/*用法1*/
.a{
 ::v-deep .b { 
  /* ... */
 }
} 
/*用法2*/
.a ::v-deep .b {
  /* ... */
}
</style>

注意:

我们深度处理器经常用在这样的情况:
例如你使用了ElementUI的走马灯(轮播图)组件,你想修改其中的样式,但是你设置样式不起作用,这个时候就是因为组件的scoped的影响。
解决办法:
1.不妨试试我们的深度处理器吧。(推荐)
2.将 scoped 移除。
3.新建一个没有 scoped 的 style(一个.vue文件允许多个style),如下:

<style scoped>
	//有scoped的style,此处放当前组件的css代码
</style>

<style>
//没有scoped的style,此处放修改ElementUI轮播图的css
</style>

总结

到此这篇关于vue中深度选择器的文章就介绍到这了,更多相关vue深度选择器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3登录界面适配的二种方法实例代码

    vue3登录界面适配的二种方法实例代码

    这篇文章主要介绍了vue3登录界面适配的二种方法,在Vue.js中使用计算属性和条件渲染来处理,每种方法都有其适用场景,选择哪种方法取决于具体需求,需要的朋友可以参考下
    2024-12-12
  • vue3.0 搭建项目总结(详细步骤)

    vue3.0 搭建项目总结(详细步骤)

    这篇文章主要介绍了vue3.0 搭建项目总结(详细步骤),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • VUE搭建手机商城心得和遇到的坑

    VUE搭建手机商城心得和遇到的坑

    这篇文章主要介绍了VUE搭建手机商城心得和遇到的坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Vue科学计数法常见处理方法举例

    Vue科学计数法常见处理方法举例

    这篇文章主要给大家介绍了关于Vue科学计数法常见处理方法的相关资料,科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,文中给出了详细的代码示例,需要的朋友可以参考下
    2024-02-02
  • vue实现在线学生录入系统

    vue实现在线学生录入系统

    这篇文章主要为大家详细介绍了vue实现在线学生录入系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • vue同个按钮控制展开和折叠同个事件操作

    vue同个按钮控制展开和折叠同个事件操作

    这篇文章主要介绍了vue同个按钮控制展开和折叠同个事件操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Vue3中实现代码高亮的两种方法(prismjs和highlight.js)

    Vue3中实现代码高亮的两种方法(prismjs和highlight.js)

    最近忙着开发自己的博客系统,在做界面展示的时候,需要让代码高亮,于是经过在网上查阅,发现有两款比较好用的插件实现代码高亮,分别是prismjs和highlight.js,下面我分别介绍下,方便给需要的同学参考
    2025-04-04
  • 前端虚拟列表实现的思路及完整代码

    前端虚拟列表实现的思路及完整代码

    这篇文章主要介绍了前端虚拟列表实现的思路及完整代码,虚拟列表是一种优化长列表性能的技术,通过只渲染可视区域的列表项来提升页面性能和用户体验,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-01-01
  • Vue3 跨域配置devServer的参数和设置方法

    Vue3 跨域配置devServer的参数和设置方法

    这篇文章主要介绍了Vue3 跨域配置devServer的参数和设置,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • vue父子组件slot插槽的使用

    vue父子组件slot插槽的使用

    这篇文章主要介绍了vue父子组件slot插槽的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08

最新评论