uni-app Hbuilder4.06内置浏览器 vue3项目因??报错
uni-app Hbuilder4.06内置浏览器 vue3项目因??报错
信息类别 | 内容 |
---|---|
产品分类 | uniapp/H5 |
PC开发环境 | Mac |
操作系统版本 | 14.3 |
开发工具 | HBuilderX |
工具版本 | 4.06 |
浏览器 | Chrome |
浏览器版本 | 内置 |
项目创建方式 | HBuilderX |
示例代码:
<script>
export default {
data() {
return {
title: 'Hello',
test:1,
}
},
onLoad() {
let test = this.test ?? 1
},
methods: {
}
}
</script>
操作步骤:
新建vue3的hello项目,在首页加入代码
onLoad() {
let test = this.test ?? 1
},
预期结果:
正常运行
实际结果:
报错:
13:26:07.594 [Vue warn]: Unhandled error during execution of async component loader
at <AsyncComponentWrapper>
at <PageBody>
at <Page>
at <Anonymous>
at <Layout>
at <App>
13:26:07.594 [SyntaxError] {message: "Unexpected token ?"}
bug描述:
??运算符在vue2项目上是不报错的,但在vue3项目上报错
2 回复
这个差异是因为vue3的vite默认策略不会把这些高级语法降级编译。而hx内置浏览器的版本又比较低造成的
在使用 uni-app 和 HbuilderX 4.06 进行 Vue3 项目开发时,可能会遇到内置浏览器报错的情况。以下是一些常见的可能原因及解决方法:
1. Vue3 兼容性问题
- 原因: uni-app 默认使用的是 Vue2,而 Vue3 在语法和 API 上与 Vue2 有一些不同,可能会导致兼容性问题。
- 解决方法:
- 确保你的项目是基于 Vue3 的 uni-app 模板创建的。
- 检查
manifest.json
文件中的vueVersion
是否设置为"3"
:{ "vueVersion": "3" }