You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue 3使用createApp创建应用时如何调用beforeMount生命周期钩子?

错误写法原因

  • Vue 3 的应用实例不存在 app.beforeMount() 这个API,无法直接通过应用实例挂载生命周期钩子
  • 你把 app.mount('#app') 的执行顺序放在了钩子定义之前,挂载完成后再定义的钩子自然不会触发

正确实现方式

方式1:扩展根组件配置(和Vue 2写法最接近,无需修改原有App组件代码)

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

const app = createApp({
  // 继承原有App组件的全部配置
  ...App,
  // 定义根级beforeMount钩子
  beforeMount() {
    console.log('test')
    localStorage.setItem('something', something)
  }
})
app.use(store)
// 所有配置完成后再执行挂载
app.mount('#app')

方式2:直接在根组件App内定义钩子

如果你的根组件是普通选项式写法,直接在App.vue的导出配置中加钩子即可:

// App.vue 选项式写法
export default {
  beforeMount() {
    console.log('test')
    localStorage.setItem('something', something)
  },
  // 原有其他配置
}

如果用<script setup>组合式API写法,调用onBeforeMount钩子:

<script setup>
import { onBeforeMount } from 'vue'

onBeforeMount(() => {
  console.log('test')
  localStorage.setItem('something', something)
})
</script>

内容的提问来源于stack exchange,提问作者t56k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:00:03