在使用自定义组件的过程中,发现只要在自定义组件的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
不是应该是我在使用的时候才会去动态加载这个组件的文件的么?
这个是正常的。
微信小程序会调用所有需要预定义的页面或组件。
但不会触发 onLoad 事件。
只有当真正调用的时候才会执行 onLoad 走到内部逻辑。
也就是说:
小程序运行 -> 调用所有预定义页面或组件 -> 进入页面 -> 页面onLoad -> 组件onLoad -> ......
阿西吧~我说怪不得我在组件里面引入另外一个写好的类,里面的构造函数被执行了。。
谢谢了~
你的console.log()写在组件对象外面肯定会执行,外面的代码都会事先执行的,页面也是一样
如果我的回答对你有帮助,请点赞
本质还是由于他会先调用预定义页面或组件,如果没有先调用的话是不会执行的