uniapp路由跳转子页面后父页面的监听组件被隐藏vue3 setup
时间: 2023-12-30 12:05:08 浏览: 146
在Vue3中,使用Composition API可以实现类似于Vue2中的mounted钩子函数的功能。可以在setup函数中使用onMounted钩子函数来监听组件的生命周期事件。
如果在子页面中跳转到父页面后,父页面的监听组件被隐藏了,可能是因为在子页面中跳转时,没有使用uniapp的保留当前页的跳转方式。例如,使用了uni.navigateTo而不是uni.navigateTo({url:'../parent/parent', keepalive: true})。
在使用保留当前页的跳转方式时,父页面的监听组件不会被销毁,而是保留在页面栈中。当从子页面返回到父页面时,父页面的监听组件会重新显示。
以下是一个示例代码:
```html
<!-- parent.vue -->
<template>
<div>
<child @click="handleClick" />
<div v-show="show">监听组件</div>
</div>
</template>
<script>
import Child from './child'
export default {
components: {
Child
},
setup() {
const show = ref(true)
const handleClick = () => {
uni.navigateTo({
url: '../child/child',
keepalive: true // 保留当前页
})
}
onMounted(() => {
console.log('mounted')
})
return {
show,
handleClick
}
}
}
</script>
<!-- child.vue -->
<template>
<div @click="$emit('click')">跳转到父页面</div>
</template>
```
在上面的示例中,当在父页面中点击子组件时,会使用保留当前页的方式跳转到子页面。在子页面中点击返回按钮后,会返回到父页面,并显示父页面的监听组件。同时,由于使用了Composition API的onMounted钩子函数,可以在父页面中监听组件的mounted事件。
阅读全文