收藏
回答

自定义组件创建顺序和 "lazyCodeLoading"引发的问题?

错误示例 https://developers.weixin.qq.com/s/vOdyHymR7atQ

1.上述示例 在工具中编译或者真机调试会报错 Component is not found in path "components/comp2/comp2" (using by "components/comp1/comp1")

但是预览正常

2.原示例 去除app.json中的配置"lazyCodeLoading" : "requiredComponents",工具和真机调试报错依旧, 预览白屏。

3.原示例 删除comp1文件夹,再在回收站中还原此文件夹后,工具编译正常,预览正常,真机调试控制台正常,屏幕一直中间转圆圈

说下自己的理解。

配置的lazyCodeLoading在工具编译(我是windows环境)时无效,只在真机使用小程序时有效.

工具编译的时,因为某些因素,组件有预注入行为(形容),并与组件创建时间相关,如果子组件创建在父组件后,会造成报错,找不到子组件。但由于设置了lazyCodeLoading,在真机启动小程序时(预览),组件注入行为有变,所以正常显示。(把父组件删除再还原的操作会使得子组件创建时间早于父组件,工具就不报错了)

需求产生是因为,开发的第三方插件(JS,TS开发)想利用自定义组件的返回值为载体承载组件类型,在父组件中写子组件properties时有更严格的类型检查,搭配behaviors可以实现更细粒度开发模式。插件已经开发完毕(实现ts类型的严格检查很费事),但由于现有错误,不得不下架npm。希望管理开发人员看到,给个官方思路,如果没有想法改变,看来就得放弃维护此插件了(心疼)。其实就是让lazyCodeLoading模式在工具端编译时生效。以下为一些插件相关截图。



最后一次编辑于  2021-09-24
回答关注问题邀请回答
收藏

1 个回答

  • Zhao ZW
    Zhao ZW
    2021-09-27

    希望有技术看到!

    2021-09-27
    有用
    回复
登录 后发表内容