vue 简单实现组件自动注册

1、应用场景:

vue 项目中,需要在某个页面上引用某一类组件时,这一类组件存在于相同的文件夹,并且需要在页面进行动态的组件绑定


2、设计思路

2.1 组件使用 <component :is=“xxx” ></component>

<component :is="currenComponent" :publicId="publicId" @publicOpen="publicOpen"> </component>

2.2 批量组件注册 require.context()

require.context() 是webpack支持模块批量导入的API,允许接收三个参数
  • param 1:组件所在文件路径
  • param 2:是否深度遍历文件夹
  • param 3:文件后缀名
<script>
	const cptAll = require.context('@/views/publicForm',true,/\.vue$/)
	let reqiure_cpts = {}
	// cptAll.keys() 返回的是匹配到的带有路径的文件名数组 
	cptAll.keys().forEach(fileName => {
		// cptAll(fileName) 返回该组件上下文内容
		let component = cptAll(fileName)
		// component.default 返回该组件上下文内容请求
		reqiure_cpts[fileName.replace(/^\.\/(.*)\.\w+$/, '$1')] = component.default
	})
	export default{
		component:reqiure_cpts
		data(){
			return {
				currenComponent:"",
			}
		},
		method:{
			// 逻辑部分
		}
	}
</script>

使用注意:

  • 案例注册的组件名默认就是vue文件名
  • 根据需求在逻辑部分处理进行组件切换

本文大概就说到这儿,有问题可以留言,谢谢支持!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值