uni-app+vue3+app createApp(App) App.vue中方法不执行
uni-app+vue3+app createApp(App) App.vue中方法不执行
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | win10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:win10
HBuilderX类型:正式
HBuilderX版本号:3.8.12
手机系统:Android
手机系统版本号:Android 11
手机厂商:vivo
手机机型:vivo
页面类型:vue
vue版本:vue3
打包方式:云端
项目创建方式:HBuilderX
示例代码:
```main.js文件
```javascript
import {
createApp
} from "vue";
import App from "./App.vue";
const app = createApp(App);
app.mount('#app')
App.vue文件
<script>
export default {
name:'App',
onLaunch: function () {
console.log('App Launch')
},
onShow: function () {
console.log('App Show')
},
onHide: function () {
console.log('App Hide')
},
}
</script>
/*
每个页面公共css
*/
操作步骤:
```javascript
import {
createApp
} from "vue";
import App from "./App.vue";
const app = createApp(App);
app.mount('#app')
预期结果:
app+ App.vue文件
onLaunch、onShow、onHide方法正常执行;
实际结果:
app, App.vue文件 onLaunch、onShow、onHide方法未执行;
bug描述:
问题: main.js 使用createApp(App).mount(’#app’), App.vue文件 createApp(App).mount(’#app’) onLaunch、onShow、onHide方法没有只执行; main.js:改用createSSRApp,App.vue文件onLaunch、onShow、onHide才执行, 不是ssr 项目也需要使用createSSRApp吗
更多关于uni-app+vue3+app createApp(App) App.vue中方法不执行的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app+vue3+app createApp(App) App.vue中方法不执行的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在uni-app中使用Vue3时,App.vue的生命周期方法(onLaunch/onShow/onHide)需要通过特定的方式注册才能生效。这是因为uni-app的App生命周期与标准Vue3的生命周期不同。
解决方案:
- 修改main.js为:
import App from './App.vue'
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
- 或者在Vue3模式下,也可以使用组合式API:
import { onLaunch, onShow, onHide } from '[@dcloudio](/user/dcloudio)/uni-app'
export default {
setup() {
onLaunch(() => {
console.log('App Launch')
})
onShow(() => {
console.log('App Show')
})
onHide(() => {
console.log('App Hide')
})
}
}