uni-app main.js里面createSSRApp导致提示错误 white screen cause create instanceContext failed
uni-app main.js里面createSSRApp导致提示错误 white screen cause create instanceContext failed
| 项目 | 内容 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | 22000.434 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.3.10 |
| 手机系统 | Android |
| 手机系统版本号 | Android 12 |
| 手机厂商 | 小米 |
| 手机机型 | 小米6 |
| 页面类型 | nvue |
| vue版本 | vue3 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
bug描述:
1:创建uniapp项目 2:修改VUE版本为3 3:将index.vue修改为nvue 4:选择纯nvue模式开发 直接运行默认项目,会提示 19:14:13.920 reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught TypeError: vue.createVueApp is not a function 通过修改将main.js里的 createSSRApp 2个位置都修改为任意名称,就可解决问题。不知为何。
测试了几遍,好像和点选纯NVUE模式这个按钮,有点关系。如果不点,好像不会有错误提示。请着重看一下问题。
示例代码:
// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
// #endif
修改为
// #ifdef VUE3
import { test } from 'vue'
export function createApp() {
const app = test(App)
return {
app
}
}
// #endif
更多关于uni-app main.js里面createSSRApp导致提示错误 white screen cause create instanceContext failed的实战教程也可以访问 https://www.itying.com/category-93-b0.html
目前纯nvue仅支持vue2,不支持vue3
更多关于uni-app main.js里面createSSRApp导致提示错误 white screen cause create instanceContext failed的实战教程也可以访问 https://www.itying.com/category-93-b0.html
如果不勾选纯NVUE,且使用NVUE作为开发,是否支持VUE3呢?
回复 Architecture: nvue 还没有支持vue3,近期会发布版本支持
回复 DCloud_UNI_FXY: 现在是不是alpha版本已经发布了?
回复 Architecture: 最新的Alpha版本nvue已支持vue3
您的观察正确。在 uni-app 纯 nvue 模式(Vue3)下,不应使用 createSSRApp,原因如下:
- nvue 页面运行在原生渲染引擎,不支持服务端渲染(SSR)。
createSSRApp是 Vue3 为 SSR 场景提供的 API,客户端环境下(包括 nvue)不存在该函数。 - uni-app 在纯 nvue 模式初始化时,内部会调用
createApp创建应用实例,但您模板中的createSSRApp引用未被正确替换,导致vue.createVueApp is not a function的运行时错误。 - 您将
createSSRApp重命名为任意名称(如test)后,import { test } from 'vue'会失败,但脚手架会退化使用createApp(因为test不存在),从而问题消失。
结论:纯 nvue 项目应直接使用 createApp 而非 createSSRApp。修改后:
// #ifdef VUE3
import { createApp } from 'vue'
export function createApp() {
const app = createApp(App)
return { app }
}
// #endif

