BaseCloud
BaseCloud
  • 发布:2021-01-03 08:18
  • 更新:2022-07-04 16:52
  • 阅读:1003

【不是Bug】自定义组件组件生命周期无法正确触发

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win7

HBuilderX类型: 正式

HBuilderX版本号: 3.0.4

浏览器平台: Chrome

浏览器版本: 87.0.4280.88

项目创建方式: HBuilderX

示例代码:

详见示例工程项目

操作步骤:

1.新建一个自定义组件,在任意生命周期函数中打印日志信息;
2.在页面中引入多个该组件,并使用v-if 进行动态切换,某些组件展现时,无法触发生命周期。

预期结果:

组件展现时应正确触发生命周期函数。

实际结果:

组件展现时未能正确触发生命周期函数

bug描述:

使用v-if判断条件动态切换自定义组件显示状态时,无法正确触发组件声明周期函数。
详见录屏与示例工程。

2021-01-03 08:18 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

vue 组件复用了
不想复用的话,可以加 key,相关文档:https://cn.vuejs.org/v2/api/#key

<a-coms :key="2" v-if="type == 1" title="组件二"></a-coms>  
<a-coms :key="3" v-if="type == 2" title="组件三"></a-coms>
BaseCloud

BaseCloud (作者) - BaseCloud是一套基于uniapp、uniCloud、uni-id的全栈开发框架,不依赖任何第三方框架,极度精简轻巧。

录屏视频和复现bug的简单示例工程均已提供,为什么没有人回复处理一下呢?
如果不是bug,请留言说明一下。

年轻经不起等待

年轻经不起等待

我也遇到了类似的问题,
不过我的是 在父页面 v-if 控制 显示/影藏 子组件
但是后来发现, 这样的话 子组件里面无法监听父组件传递过来的值,
只有当 v-if = true 就是子组件初始处于显示的时候才能监听到父组件的传值
如果 v-if = false 子组件初始是隐藏的话 无法执行监听动作

我只能通过css 的hidden和show 来替换 v-if 了

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