在使用 Vue3 的过程当中, 在学习语法糖的时候,发现了 命名空间组件这个名词,在此之前并未了解过,来浅浅的研究一下 ~
以下介绍来自官方文档
首先创建三个组件 : componentA
, componentb
, componentC
创建一个 child.js 引入这三个组件并抛出
// child.js// 引入组件
import ComponentA from './componentA.vue'
import ComponentB from './ComponentB.vue'
import ComponentC from './ComponentC.vue'
// 抛出组件
export {ComponentA,ComponentB,ComponentC
}
在父组件中引入 child.js ,并使用 child.js 中的三个组件
我是父组件!
// father.vue
这时候页面中的效果如下
代码如下(示例):
我是父组件!
此处的效果是一样的 ~ ! !
使用 命名空间组件
的引入组件的方式方便之处就是如果需要引入一个文件
中的多个组件
,就不用一个一个引入了,可以 import * as Xxx from 'xxx'
将整个文件引入
antdesign 中已经有这样的用法了,组件之间的关系更加明确,有一个相同父级
label
前提
使用命名空间组件是有前提的 ! : 必须是 Vue3 中 setup 语法糖
的格式才可以使用,直接在 Vue3 中使用是不生效的 (有看到文章中说必须是 Vue3+ ts ,我在 Vue3 setup script 语法糖中不使用 ts 的情况下试了试,是可以的)
不使用 Vue3 语法糖的方式,会有 warn 并且页面中不展示内容了