自定义组件没有引用也会自动执行
发布于 6 年前 作者 iding 8232 次浏览 来自 问答

在使用自定义组件的过程中,发现只要在自定义组件的json文件里面声明了

{

“component”:true

}

那么无论页面有没有usingComponent声明引入这个组件,这个组件的js都会被自动执行,但是组件并不会初始化,这样是正常的么。

例如:

//component.js

console.log(99999)

Component({

})

//component.json

{

“component”: true

}

//component.wxml

<view class=“demo”></view>

在进入pages/index/inddex的时候,同时这个组件的js也被执行了,会输出99999

不是应该是我在使用的时候才会去动态加载这个组件的文件的么?

2 回复

这个是正常的。

微信小程序会调用所有需要预定义的页面或组件。

但不会触发 onLoad 事件。

只有当真正调用的时候才会执行 onLoad 走到内部逻辑。

也就是说:

小程序运行 -> 调用所有预定义页面或组件 -> 进入页面 -> 页面onLoad -> 组件onLoad -> …

你的console.log()写在组件对象外面肯定会执行,外面的代码都会事先执行的,页面也是一样

__如果我的回答对你有帮助,请点赞 __

回到顶部