yette123
yette123
  • 发布:2024-12-09 17:22
  • 更新:2024-12-10 10:13
  • 阅读:83

【报Bug】app端App.vue应用级生命周期函数onLaunch和onShow不执行

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 4.36

手机系统: Android

手机系统版本号: Android 15

手机厂商: 小米

手机机型: mi 10

页面类型: vue

vue版本: vue3

打包方式: 离线

项目创建方式: HBuilderX

操作步骤:

基于Hello uniapp模版创建的项目,在App.vue页面添加
onLaunch (options) {
console.log('App onLaunch', options)
}
和 onShow () {
console.log('App Show')
}

预期结果:

控制台打印
App onLaunch
App Show

实际结果:

没有打印

bug描述:

我在App.vue页面添加了应用级生命周期函数onLaunch,onShow都没有执行,但是mounted函数执行了,不知道怎么回事?

2024-12-09 17:22 负责人:无 分享
已邀请:
yette123

yette123 (作者)

我找到原因了,我的 main.js 文件是:

import { createApp } from 'vue'
import App from './App.vue'
import store from './stores'

const app = createApp(App)
app.use(store).mount('#app')

而官方给的列子是:
import App from './App'
import store from './stores'
import { createSSRApp } from 'vue'

export function createApp() {
const app = createSSRApp(App)
app.use(store)
return {
app
}
}

因为我并没有用到SSR,所以我改为单页应用的写法,就不执行onLaunch和onShow函数了,改回去就可以了。

爱豆豆

爱豆豆 - 办法总比困难多

我新建空项目测试是正常的 可以提供一个复现demo吗?

  • yette123 (作者)

    如我评论区所说,我并没有用到SSR,所以我用createApp创建App,而不是createSSRApp,就不执行onLaunch和onShow函数了,是什么原因呢?

    2024-12-10 10:14

  • 爱豆豆

    回复 yette123: 我看了下uniapp的vue3项目 main.js用的都是createSSRApp 没有发现有用createApp的方式

    但是vue3项目中的main.js中用的都是createApp 你这个main.js不会是vue3项目复制的吧?

    createApp应该是有兼容问题吧

    那就用官方的呗 我uniapp的v3项目都是createSSRApp

    2024-12-10 10:53

要回复问题请先登录注册