vue2的项目,使用了vant-weapp组件库。通过使用globalStyle.usingComponents中定义组件的方式能正常使用,符合预期功能。但是在部分页面用skyline的时候就无法支持,小程序编译会报错,因为vant-weapp不支持skyline。
如果使用easycom的规范去定义组件,小程序部分页面使用skyline就不会报编译错误,组件自身的行为也正常,就是不能使用dataset传参。
打断点调试发现问题出现在uniapp runtime的processEventArgs方法中
还需要event.currentTarget.dataset.comType === 'wx'才能传入原始的dataset。globalStyle.usingComponents定义的组件在页面中编译后会自带一个data-com-type="wx",而easycom定义的组件却不会。如果手动给在页面中使用的easycom定义的组件上加上data-com-type="wx",编译后的行为就跟在globalStyle.usingComponents一样,符合预期了。
我知道easycom规范是针对vue组件的,但既然微信小程序组件能在easycom中正常定义使用,我想能不能有个配置可以给easycom的组件添加上data-com-type="wx",使得dataset这一个重要特性也能保持兼容。