Vue----组件注册

news/2024/7/10 1:11:37 标签: vue, vue.js, 组件, 前端, 前端框架

文章目录

  • 组件的注册
    • 1.1 注册组件的两种方式
    • 1.2 全局注册组件
    • 1.3 使用全局注册组件
    • 1.4 局部注册组件
    • 1.5 全局注册和局部注册的区别
    • 1.6 组件注册时名称的大小写
    • 1.7 通过 name 属性注册组件


组件的注册

组件之间可以进行相互的引用。

vue组件的引用原则:先注册后使用。

1.1 注册组件的两种方式

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

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

1.2 全局注册组件

// 1. 按需导入 createApp 函数
import { createApp } from 'vue'
// 2. 导入待渲染的 App.vue 组件
import App from './App.vue'

// 1. 导入需要被全局注册的组件
import Swiper from './components/01.globalReg/Swiper.vue'
import Test from './components/01.globalReg/Test.vue'

// 3. 调用 createApp 函数,创建 SPA 应用的实例
const app = createApp(App)

// 2. 调用 app.component() 方法全局注册组件
app.component('MySwiper', Swiper)
app.component('MyTest', Test)

// 4. 调用 mount() 把 App 组件的模板结构,渲染到指定的 el 区域中
app.mount('#app')

1.3 使用全局注册组件

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

<template>
  <h1>这是 <i>App.vue</i>组件</h1>
  <hr />
  <MyTest></MyTest>
</template>

1.4 局部注册组件

<script>
import Search from './components/02.privateReg/Search.vue'

export default {
  // 组件的名称
  name: 'MyApp',
  components: {
    'my-search': Search,
  },
}
</script>
<template>
  <my-search></my-search>
</template>

1.5 全局注册和局部注册的区别

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

应用场景:

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

1.6 组件注册时名称的大小写

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

① 使用 kebab-case 命名法(俗称短横线命名法,例如 my-swiper 和 my-search)
② 使用 PascalCase 命名法(俗称帕斯卡命名法或大驼峰命名法,例如 MySwiper 和 MySearch)

短横线命名法的特点:

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

帕斯卡命名法的特点:

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

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

// 1. 按需导入 createApp 函数
import { createApp } from 'vue'
// 2. 导入待渲染的 App.vue 组件
import App from './App.vue'

// 1. 导入需要被全局注册的组件
import Swiper from './components/01.globalReg/Swiper.vue'
import Test from './components/01.globalReg/Test.vue'

// 3. 调用 createApp 函数,创建 SPA 应用的实例
const app = createApp(App)

// 2. 调用 app.component() 方法全局注册组件
app.component('MySwiper', Swiper)
app.component('MyTest', Test)

// 4. 调用 mount() 把 App 组件的模板结构,渲染到指定的 el 区域中
app.mount('#app')

<template>
  <h1>这是 <i>App.vue</i>组件</h1>
  <hr />
  <my-swiper></my-swiper>
  <MyTest></MyTest>
  <my-test></my-test>
</template>

1.7 通过 name 属性注册组件

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

<template>
  <h3>Swiper 轮播图组件</h3>
</template>

<script>
export default {
  name: 'MySwiper',
}
</script>
```javascript
// 1. 按需导入 createApp 函数
import { createApp } from 'vue'
// 2. 导入待渲染的 App.vue 组件
import App from './App.vue'

// 1. 导入需要被全局注册的组件
import Swiper from './components/01.globalReg/Swiper.vue'
import Test from './components/01.globalReg/Test.vue'

// 3. 调用 createApp 函数,创建 SPA 应用的实例
const app = createApp(App)

// 2. 调用 app.component() 方法全局注册组件
app.component(Swiper.name, Swiper)
app.component(Test.name, Test)

// 4. 调用 mount() 把 App 组件的模板结构,渲染到指定的 el 区域中
app.mount('#app')

组件名与导入名一样

<script>
export default {
  name: 'MyStyle',
  }
</script>
<script>
import MyStyle from './Style.vue'

export default {
  name: 'MyApp',
  components: {
    MyStyle
  }
}
</script>

http://www.niftyadmin.cn/n/563835.html

相关文章

阿里云服务器以及域名申请和绑定搭建教程

在大学阶段&#xff0c;购买并搭建了自己的第一个服务器&#xff0c;心情激动无比&#xff0c;写下本片博文记录购买并搭建服务器的全过程&#xff0c;方便自己以后在服务器方面进行更加深入的学习。阿里云和腾讯的服务器都有学生价&#xff0c;价格都是一折左右&#xff0c;真…

Vue -- scoped 组件间的样式冲突

文章目录1. 组件之间的样式冲突问题1.1 如何解决组件样式冲突的问题1.2 style 节点的 scoped 属性2. /deep/ 样式穿透3. 让 style 中支持 less 语法1. 组件之间的样式冲突问题 默认情况下&#xff0c;写在 .vue 组件中的样式会全局生效&#xff0c;因此很容易造成多个组件之间…

阿里云服务器如何选择操作系统?操作系统选择方法

阿里云ECS服务器操作系统如何选择&#xff1f;新手站长网分享阿里云操作系统选择说明及选择方法&#xff1a; 如何选择服务器操作系统&#xff1f; 购买ECS云服务器选择操作系统是很重要的步骤&#xff0c;那么如何选择&#xff1f;哪个操作系统好&#xff1f;我们先了解一下…

Vue -- props配置项

文章目录1 组件的 props2 在组件中声明 props3 无法使用未声明的 props4 props 的大小写命名1 组件的 props 为了提高组件的复用性&#xff0c;在封装 vue 组件时需要遵守如下的原则&#xff1a; 组件的 DOM 结构、Style 样式要尽量复用 组件中要展示的数据&#xff0c;尽量由…

怎么做网站?个人和企业如何做网站,看完就会

现在个人和企业都想拥有自己的一个博客、网站&#xff0c;可以宣传自己、公司业务&#xff0c;是当今互联网社会必须的。其实制作一个网站并不是非常困难&#xff0c;只要您能认真看完我们这个做网站的教程&#xff0c;我相信你一定能做出一个自己想要的网站&#xff0c;那我们…

B树[概念]

文章目录1 B-Tree2 BTree1 B-Tree B-Tree&#xff0c;B树是一种多叉路衡查找树&#xff0c;相对于二叉树&#xff0c;B树每个节点可以有多个分支&#xff0c;即多叉。以一颗最大度数&#xff08;max-degree&#xff09;为5(5阶)的b-tree为例&#xff0c;那这个B树每个节点最多…

Vue----Class 与 Style 绑定

文章目录Class 与 Style 绑定1 动态绑定 HTML 的 class2 以数组语法绑定 HTML 的 class3 以对象语法绑定 HTML 的 class4 以对象语法绑定内联的 styleClass 与 Style 绑定 在实际开发中经常会遇到动态操作元素样式的需求。因此&#xff0c;vue 允许开发者通过 v-bind 属性绑定…

小程序----组件

文章目录1 小程序中组件的分类2 常用的视图容器类组件2.1 view 组件的基本使用2.2 scroll-view 组件的基本使用2.3 swiper 和 swiper-item 组件的基本使用2 常用的基础内容组件2.1 text 组件的基本使用2.2 rich-text 组件的基本使用3 其它常用组件3.1 button 按钮的基本使用3.2…