vue中注册组件的两种方式详解(全局注册&& 局部注册)

 更新时间:2023年06月24日 10:04:49   作者:蓝胖子的多啦A梦  
vue 是一个完全支持组件化开发的框架, 组件之间可以进行相互的引用,这篇文章主要介绍了vue中注册组件的两种方式详解(全局注册&& 局部注册),需要的朋友可以参考下

vue 是一个完全支持组件化开发的框架, 组件之间可以进行相互的引用。vue 中组件的引用原则:先注册后使用。

1. 组件的注册

组件之间可以进行相互的引用,例如:

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

全局注册的组件,可以在全局任何一个组件内使用
局部注册的组件,只能在当前注册的范围内使用

1)全局注册组件

在main .js 中引用

import Vue from 'vue'
//导入 dialogBox 和Test 两个组件
import dialogBox from './components/InfoMessage/index.vue';
import Test from './components/MyTest.vue'
Vue.component('dialogBox', dialogBox)
Vue.component('my-test', Test)

2)使用全局注册组件

使用app.component() 方法注册的全局组件,直接以标签的形式进行使用即可,例如:

 //在 main.js中,注册了dialogBox 和my-test两个全局组件
Vue.component('dialogBox', dialogBox)
Vue.component('my-test', Test)
 <!--在其他组件中,直接以标签的形式,使用刚才注册的全局组件即可
 <template>
 <h1>这是App根组件</h1>
 <hr/>
 <dialogBox></dialogBox>
<my-test></my-test>
 </template>

3)局部注册组件

<template>
 <h1>这是App根组件</h1>
<my-swiper></my-swiper>
<my-search></my-search>
 </template>
 <script>
 import Search from './components/MySearch.vue'
 export default {
components:{// 通过 components节点,为当前的组件注册私有子组件
'my-search': Search,
 },
}
 </script>

2.全局注册和局部注册的区别

全局注册的组件,可以在全局任何一个组件内使用
局部注册的组件,只能在当前在这里插入代码片注册的范围内使用

应用场景

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

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

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

①使用kebab-case命名法(俗称短横线命名法,例如my-test 和my-search)

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

短横线命名法的特点:

必须严格按照短横线名称进行使用

帕斯卡命名法的特点:

既可以严格按照帕斯卡名称进行使用,又可以转化为短横线名称进行使用

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

4.通过name 属性注册组件

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

示例代码如下:

5.组件之间的样式冲突问题

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

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

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

到此这篇关于vue中注册组件的两种方式(全局注册&amp;&amp; 局部注册)的文章就介绍到这了,更多相关vue注册组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pinia.js状态管理器上手使用指南

    Pinia.js状态管理器上手使用指南

    这篇文章主要为大家介绍了Pinia.js状态管理器上手使用指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能

    vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能

    这篇文章主要介绍了vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能,本文图文并茂给大家介绍的非常详细,需要的朋友可以参考下
    2018-03-03
  • Vue-admin-template 报Uncaught (in promise) error问题及解决

    Vue-admin-template 报Uncaught (in promise) error问题及解决

    这篇文章主要介绍了Vue-admin-template 报Uncaught (in promise) error问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • vue中的eventBus会不会产生内存泄漏你知道吗

    vue中的eventBus会不会产生内存泄漏你知道吗

    这篇文章主要为大家详细介绍了vue中的eventBus会不会产生内存泄漏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • vue发送ajax请求详解

    vue发送ajax请求详解

    如何利用vue进行AJAX,其它vue本身不支持发送AJAX请求,需要使用vue-resource(vue1.0版本)或axios(vue2.0版本)第三方插件的支持才行
    2018-10-10
  • 从零实现一个vue文件解析器

    从零实现一个vue文件解析器

    本文就讨论下怎么实现一个处理.vue文件的loader,以及用loader处理完.vue文件怎么把内容渲染在浏览器上并实现简单的响应式,对vue文件解析器相关知识感兴趣的朋友一起看看吧
    2022-06-06
  • 7个适用于Vue 3的高颜值UI组件库

    7个适用于Vue 3的高颜值UI组件库

    这篇文章主要给大家分享介绍了7个适用于Vue 3的高颜值UI组件库,合理利用,又或者学习借鉴都是不错的选择,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • vue3.x 使用jsplumb实现拖拽连线

    vue3.x 使用jsplumb实现拖拽连线

    这篇文章主要为大家详细介绍了vue3.x 使用jsplumb实现拖拽连线,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 在vue中使用vuex,修改state的值示例

    在vue中使用vuex,修改state的值示例

    今天小编就为大家分享一篇在vue中使用vuex,修改state的值示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • vue路由传参三种基本方式详解

    vue路由传参三种基本方式详解

    这篇文章主要介绍了vue路由传参三种基本方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论