hourglass
hourglass
  • 发布:2019-03-12 09:31
  • 更新:2022-04-09 11:49
  • 阅读:11566

uni-app组件式开发,通用组件的引入方式只有在main.js中使用Vue.component吗

分类:uni-app

开发通用组件的时候,测试了以下组件引入的几种方法:
1使用js文件内export default {install(Vue) { Vue.component(....)}},main.js使用Vue.use();
2单独js文件中import Vue from 'vue',在js文件内使用Vue.component(),最后在main.js通过import导入;
3单独js文件中引入所有vue组件,通过export统一导出,这样在.vue页面内部可通过import {a,b,c..} from 'xxx.js',测试在微信小程序上会有提示:WXMLRT_$gwx:./pages/index/index.vue.wxml:template:1:386: Template 40565a46 not found.
4在main.js中使用vue.component。
发现只有方法4在chrome及微信小程序起作用,其他3种方法均未起作用(以上方法在PC端都是可以的)
疑问:方法4会使main.js变得臃肿,想用模块化开发,相比方法4,方法3可在页面内少用import xx from '.vue',不知道为什么不可以,烦请解答

2019-03-12 09:31 负责人:无 分享
已邀请:
Neil_HL

Neil_HL

只能使用方法4,而且vue.component的第一个参数必须为静态字符串,不能是变量

9***@qq.com

9***@qq.com

方法4 可以引入npm包(自己实现的)中,导出的组件吗?在main.js 总是提示 Vue.component()需要两个参数 但是确实是传了两个参数,在pc中是正确的

白龙马

白龙马

同用方法三出错。您解决了吗

  • hourglass (作者)

    没有,大牛说只能用方法4

    2019-03-14 09:39

  • shuaiqi_html5

    回复 hourglass: 方法3 在微信小程序上还是不行,有解决方法吗。

    2021-05-25 09:40

如风_周

如风_周

小程序: 只能在main.js实现组件注册.
pc: 以上四种都可以。
h5:未试过,理论上来说 应该都可以的。

tomzhao

tomzhao

+1,代码重构的是后被这个坑了3个小时

z***@moemone.com

z***@moemone.com

+1,我也在重构时被这个问题坑了好久。对比研究了半天,只有main.js可用。

该问题目前已经被锁定, 无法添加新回复