普通组件内可以直接使用页面上的生命周期,一切正常,这是uni-app的bug还是默认允许的

普通组件内可以直接使用页面上的生命周期,一切正常,这是uni-app的bug还是默认允许的

开发环境 版本号 项目创建方式
Windows 22H2 CLI

示例代码:

// components\a\a.vue
<script setup lang="ts">
onLoad(async (e: any) => {
console.log('components load')
});
</script> 

// home.vue
<template>
<a></a>
</template>
<script setup lang="ts">
onLoad(async (e: any) => {
console.log('page load')
});
</script>

操作步骤:

直接运行到微信小程序就可以复现

预期结果:

正常来讲组件内是不可以使用页面的生命周期的

实际结果:

组件可以直接使用页面的生命周期,虽然我觉得这样挺好的,就怕后续版本会修复回来导致我线上项目报错

bug描述:

普通组件components\a\a.vue
页面homw.vue

两个文件的onLoad生命周期都执行了,页面的先执行,组件后执行
编译到小程序页面也是普通组件,并没有编译成了页面

问题:是否是正常的现象,还是一个bug,后续版本会修复回来吗?
这样还挺方便的,在组件内就可以直接写onshow来执行相关的逻辑


更多关于普通组件内可以直接使用页面上的生命周期,一切正常,这是uni-app的bug还是默认允许的的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

参考下这个问答:https://ask.dcloud.net.cn/question/194653 下面有官方回复

更多关于普通组件内可以直接使用页面上的生命周期,一切正常,这是uni-app的bug还是默认允许的的实战教程也可以访问 https://www.itying.com/category-93-b0.html


感谢,我刚试了一下,onReady也会触发哈,那就不是bug了,这样还挺好用的

@dcloudio/uni-mp-weixin”: “3.0.0-4030620241128001”,

回到顶部