DCloud_UNI_WZF
DCloud_UNI_WZF
  • 发布:2020-09-22 17:06
  • 更新:2025-01-17 11:09
  • 阅读:268232

uni-app 项目支持 vue 3.0 介绍,及升级指南

分类:uni-app

简介

HBuilderX 3.3.0+ 更新uni-app编译器,支持基于 Vite 编译到小程序平台。

至此,uni-appApp/H5/小程序全平台支持Vue 3.0开发,且全平台支持Vite编译器,下载 HBuilderX 3.3.0+ 体验

Tips:

除支持 vue3 语法特性外,uni-app 特有的生命周期钩子支持 Composition API,如 onLaunchonShowonLoad... ,使用方法见 Vue2 迁移 Vue3 文档

HBuilderX创建支持 vue3 的 uni-app 项目

从 HBuilderX 3.3.0+ 起,支持创建 vue3 的 uni-app 项目,一套代码运行到多端:

  1. 创建一个 uni-app 项目

  2. 在项目的 manifest 的「基础配置」中切换 「vue 版本选择」,默认是 vue2,切换为 vue3 即可

cli 创建支持 vue3 的 uni-app 项目

  1. 创建 Vue3/Vite 工程

    # 创建以 javascript 开发的工程  
    npx degit dcloudio/uni-preset-vue#vite my-vue3-project  
    
    # 创建以 typescript 开发的工程  
    npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project  
  2. 进入工程目录

    cd my-vue3-project  
  3. 安装依赖

    npm i  或  yarn  
  4. 运行

    # 运行到 h5   
    npm run dev:h5  
    # 运行到 app   
    npm run dev:app  
    # 运行到 微信小程序  
    npm run dev:mp-weixin  
  5. 打包

    # 打包到 h5   
    npm run build:h5  
    # 打包到 app   
    npm run build:app  
    # 打包到 微信小程序  
    npm run build:mp-weixin  

更新依赖版本

参考:https://uniapp.dcloud.net.cn/quickstart-cli.html#cliversion

从 vue2 迁移到 vue3

请参看官方文档从 vue2 迁移到 vue3

注意事项

  • vue3 响应式基于 Proxy 实现,不支持iOS9和ie11。vue3 中文文档
  • 暂不支持新增的 Teleport,Suspense 组件。
  • 在 Vue3 中, 处理 API Promise 化 调用结果的方式不同于 Vue2。更多
    • Vue3 中,调用成功会进入 then 方法,调用失败会进入 catch 方法
    • Vue2 中,调用无论成功还是失败,都会进入 then 方法,返回数据的第一个参数是错误对象,第二个参数是返回数据

欢迎开发者反馈使用该版本遇到的问题,我们将积极收集意见。

49 关注 分享
剑心无间 3***@qq.com 1***@189.cn wenju Yuhuawang l***@163.com l***@gmail.com lmsorry j***@qq.com 毛学生 最光阴 2***@qq.com 默毅品牌设计 1***@qq.com FISH_FLYING 苏陌 1***@qq.com Warn 低调路人甲 DCloud_IOS_XTY 1***@qq.com 小人物1992 我是船长 PepsiCola l***@163.com BruceAn QLing 4***@qq.com 1***@163.com l***@gmail.com 然然Ranan j***@126.com 7***@qq.com 丶且听风吟8 五茶 hormo 2***@qq.com 4***@qq.com y***@qq.com 某人gmgn3 2***@qq.com 张迪迦 1***@qq.com 3***@qq.com 1***@163.com HRK w***@163.com sonicsunsky Jello

要回复文章请先登录注册

7***@qq.com

7***@qq.com

这个是没人维护了吗?一个问题问几遍都没人回答
2021-11-22 22:23
7***@qq.com

7***@qq.com

使用 hbx 创建的 Vue3 项目,使用 composition API 在微信小程序中怎么获取上一个页面传递过来的参数?
2021-11-22 22:16
s***@halehuo.com

s***@halehuo.com

app端 "navigationStyle": "custom",
会有一个灰色的状态栏
2021-11-18 16:55
[已删除]

[已删除]

想问一下,支持vue3.2了嘛?
2021-11-18 16:01
初见

初见

cli 创建 vue3 的 小程序项目配置alias没效果 没人发现吗?
2021-11-17 11:50
t***@126.com

t***@126.com

ts 用上了发现也没有智能提示和报错。。。跟不用ts一个样都能编译成功,不知道这个搞了ts有啥用。。。
```
<script lang="ts">
import { defineComponent } from 'vue'
type Todo = {
id: number;
name: string;
}
export default defineComponent ({
data() {
return {
href: 'https://uniapp.dcloud.io/component/README?id=uniui',
todos: [] as Todo
}
},
created() {
this.todos.push({ id: 1, name: 456 })
},
methods: {

}
})
</script>
```

定义的name是字符串,结果push 数字都能编译成功

```
12:02:45.897 正在热重载...
12:02:46.183 DONE Build complete. Watching for changes...
12:02:46.188 项目 'kol-mini-program' 编译成功。前端运行日志,请另行在小程序开发工具的控制台查看。

```
2021-11-16 12:02
jxtian

jxtian

回复 5***@qq.com :
vue3 的 vite 目前只支持 ESM ,ES6 模块规范,你的 npm 包可能是 common.js 的模块规范,需要在包里把导出方式改为 ESM 规范
2021-11-16 11:38
t***@126.com

t***@126.com

回复 t***@126.com :
您好这个我自己解决了,但是希望对使用ts的时候tsconfig.json怎么配置做一个解释,因为按照文档的教程,没有这个好像跑不起来,谢谢
2021-11-16 11:24
t***@126.com

t***@126.com

参考 使用 ts 开发 uni-app 报错
```
11:08:33.121 [tsl] ERROR
11:08:33.121 TS2688: Cannot find type definition file for 'vite/client'.
11:08:33.143 ERROR Build failed with errors.
```
2021-11-16 11:14
l***@foxmail.com

l***@foxmail.com

最新的模版有问题,npm 上都没有相关版本的包,比如:"@dcloudio/uni-app": "^3.0.0-alpha-3021320211115001",
2021-11-16 10:31