龙空技术网

笔记篇——Vue组件的使用,你还在苦恼组件样式无法修改吗?

兔子宇航员06 138

前言:

当前看官们对“vue组件样式写在哪里”都比较看重,同学们都需要学习一些“vue组件样式写在哪里”的相关内容。那么小编同时在网上收集了一些对于“vue组件样式写在哪里””的相关知识,希望小伙伴们能喜欢,各位老铁们快快来了解一下吧!

组件的注册

1. 注册组件的两种方式

Vue中注册组件的方式分为“全局注册”和“局部注册”两种

①被全局注册的组件,可以在全局任何一个组件内使用

②被局部注册的组件,只能在当前注册的范围内使用

2. 全局注册组件

3. 局部注册组件

4. 全局注册组件和局部注册组件的区别

①被全局注册的组件可以在全局任何一个组件内使用

②被局部注册的组件只能在当前注册的范围内使用

应用场景:

如果某些组件在开发期间的使用频率很高,推荐进行全局注册,如果某些组件只在特定的情况下会被用到,推荐进行局部注册。

5. 组件注册时名称的大小写

在进行组件的注册时,定义组件注册名称的方式有两种:

① 使用 kabab-case命名法(俗称短横线命名法,例如my-swiper)

② 使用PascalCase命名法(俗称帕斯卡命名法或大驼峰命名,例如MySwiper)

③ 特点:短横线命名法必须严格按照短横线名称进行使用,帕斯卡命名法既可以严格按照帕斯卡名称进行使用又可以转化为短横线名称进行使用

④ 注意:在实际开发中,推荐使用帕斯卡命名法为组件注册名称,因为它的适用性更强。

6. 通过name属性注册组件

在注册组件,除了可以直接提供组件的注册名称之外,还可以把组件的name属性作为注册后组件的名称。

7. 组件之间的样式冲突

默认情况下,写在.Vue组件中的样式会全局生效,因此很容易造成多个组件之间的样式冲突问题。导致组件之前样式冲突的根本原因是:

① 单页面应用程序中,所有组件的DOM结构,都是基于唯一的index.html页面进行呈现的

② 每个组件中的样式,都会影响整个index.html页面中的DOM元素

8. 如何解决组件样式冲突的问题

①为每个组件分配唯一的自定义属性,在编写组件样式时,通过属性选择器来控制样式的作用域。

② style节点的scoped属性

为了提高开发效率和开发体验,vue为style节点提供了scoped属性,从而防止组件之间的样式冲突问题。

9. /deep/ 样式穿透

如果给当前组件的style节点添加了scoped属性,则当前组件的样式对其子组件是不生效的。如果想让某些样式对子组件生效,可以使用/deep/深度选择器。

注意:/deep/是vue2.x中实现样式穿透的方案。在vue3.x中推荐使用:deep()代替/deep/

标签: #vue组件样式写在哪里