uniapp升级Vue3:避坑指南与步骤详解

news/2024/9/18 16:49:18/ 标签: vue.js, javascript, 前端, uni-app, 微信小程序

为什么要升级到 Vue3

Vue3 是 Vue.js 的最新版本,相比 Vue2,它带来了许多改进和新特性,比如更小的包体积、更好的性能、更强大的组合式 API 等。通过升级到 Vue3,我们可以享受到这些新特性带来的好处,提升项目的开发效率和用户体验

二、升级步骤

1、Hbuildx 安装 vue3 依赖版本

图片

2、vue2 项目依赖库切换 vue3

图片

3、替换 index.html 文件

在项目根文件 index.html 文件替换为以下内容

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><metaname="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/><title></title><!--preload-links--><!--app-context--></head><body><div id="app"><!--app-html--></div><script type="module" src="/main.js"></script></body>
</html>

三、语法替换

vue3 新增了一些新语法和使用限制,需升级为 vue3 新语法、使项目在 vue3 版本正常运行

创建实例新写法

vue3 中使用 createSSRAapp 创建实例 ,在 main.js 代码如下

import App from './App'
import { createSSRApp } from 'vue'
// 不能修改导出的 createApp 方法名,不能修改从 Vue 中导入的 createSSRApp。
export function createApp() {const app = createSSRApp(App)return {app}
}

1、commonJs 改为 ES6 模块规范

所有 require 不可使用,改为 import

// 导入
// 之前 - Vue 2, 使用 commonJS
var utils = require("../../../common/util.js");
// 之后 - Vue 3, 只支持 ES6 模块
import utils from "../../../common/util.js";
// 导出
// 之前 - Vue 2, 依赖如使用 commonJS 方式导出
module.exports.X = X;
// 之后 - Vue 3, 只支持 ES6 模块
export default { X };

2、避免 if 和 for 一起使用

v-if 优先级更好,因此 for 和 v-if 不建议写在一起

3、过滤器改为函数写法

vue3 中删除 filter ,将所有的 filter 改为 函数式写法

4、声明周期新写法

在 Vue3 中组件卸载的生命周期被重新命名

  • destroyed 修改为 unmounted

  • beforeDestroy 修改为 beforeUnmount

created 和 onLoad 生命周期执行顺

1、created 为组件生命周期,onLoad 为页面生命周期。因此 created 执行先于 onLoad 更合理。

Vue3 在实现时 created 先于 onLoad 执行;Vue2 项目由于历史包袱较重不便修改,仅在使用组合式 API 时与 Vue3 对齐。

在编写代码时不应依赖 created 和 onLoad 生命周期执行顺序


http://www.ppmy.cn/news/1526187.html

相关文章

在服务器上开Juypter Lab教程(远程访问)

在服务器上开Juypter Lab教程&#xff08;远程访问&#xff09; 文章目录 在服务器上开Juypter Lab教程&#xff08;远程访问&#xff09;一、安装anaconda1、安装anaconda2、提权限3、运行4、同意协议5、安装6、是否要自动初始化 conda7、结束8、检查 二、Anaconda安装Pytorch…

精品PPT | 离散制造行业智能工厂总体解决方案

一、建设背景 离散制造业&#xff0c;包括机械制造业、汽车制造业和家电制造业等&#xff0c;其生产过程涉及多个不连续的工序&#xff0c;产品通常由多个零件装配而成。这类行业面临的挑战包括品种多、批量小、订单变化快、临时插单频繁以及外协件管理困难等问题&#xff0c;…

Unity-Transform类-父子关系

Transform拓展方法练习 public static class Tuozhan { 拓展方法&#xff0c;把子对象按名字长度排序 public static void Sortchild(this Transform obj) { List<Transform> Indexs new List<Transform>(); for (int i 0; i < obj.chil…

9. 什么是 Beam Search?深入理解模型生成策略

是不是总感觉很熟悉&#xff1f; 在之前第5&#xff0c;7&#xff0c;8篇文章中&#xff0c;我们都曾经用到过与它相关的参数&#xff0c;而对于早就有着实操经验的同学们&#xff0c;想必见到的更多。这篇文章将从示例到数学原理和代码带你进行理解。 Beam Search 对应的中文翻…

《上海体育大学学报》

投稿要求 &#xff08;1&#xff09;稿件格式&#xff1a;请参考《上海体育大学学报》论文模板&#xff0c;可前往官网“论文模板”下载。 &#xff08;2&#xff09;开设栏目&#xff1a;《专题探索》《学术争鸣》《原创成果》《研究综述》《热点透视》《新视点》等。 &…

Google 工程师开始用Rust 语言开发 Android 固件

Google 工程师最近开始尝试用 Rust 语言为 Android 虚拟化框架&#xff0c;他们用Rust语言重写了保护虚拟机的固件。Google工程师 Ivan Lozano 和 Dominik Maier 在官方博客上鼓励其他开发者也用 Rust 开发固件&#xff0c;表示并不难。 众所周知&#xff0c;系统固件通常是用…

第二十四章 加密安全标头元素 - 基本示例

文章目录 第二十四章 加密安全标头元素 - 基本示例 第二十四章 加密安全标头元素 - 基本示例 以下示例调用 Web 客户端并发送已加密的 <UsernameToken>。在此示例中&#xff0c;正文未加密。 Set client##class(XMLEncrSecHeader.Client.XMLEncrSecHeaderSoap).%New()//…

【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 苹果格式

【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 Heic2any: Client-side conversion of HEIC/HEIF image files to JPEG,PNG, or GIF in the browser.https://alexcorvi.github.io/heic2any/#demo GitHub - alexcorvi/heic2any: Converting HEIF/HEIF image formats to PN…

【QT】常用控件-下

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;QT 目录 &#x1f449;&#x1f3fb;QComboBox&#x1f449;&#x1f3fb; QSpinBox&#x1f449;&#x1f3fb;QDateTimeEdit&#x1f449;&#x1f3fb;QD…

华为ensp:WLAN的无线综合实验

一、WLAN的知识点 1.WLAN的概念&#xff1a;WLAN是一种无线局域网技术&#xff0c;用于实现局部区域内的计算机设备互联和资源共享。 2.WLAN的工作原理&#xff1a;主要涉及无线网卡、接入控制器设备(AC)、无线接入点(AP)等关键组件的协同工作。 3.建立CAPWAP隧道阶段 4.为确…

优化安防视频监控的关键体验:视频质量诊断技术如何应用在监控系统中?

随着科技的不断进步&#xff0c;视频监控平台在公安、司法、教育、基础设施等众多领域得到了广泛应用。然而&#xff0c;视频图像的质量直接关系到监控系统的应用效果&#xff0c;是反映监控系统运维效果的重要指标之一。因此&#xff0c;视频监控平台需要配备一系列先进的视频…

计算机毕业设计选题推荐-项目评审系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

替换传统数据处理平台,TDengine 与华风数据达成合作

在全球能源转型的大背景下&#xff0c;新能源产业正迎来前所未有的发展机遇。随着国家对可再生能源的政策支持和市场需求的不断增长&#xff0c;风电、光伏和储能等新能源项目如雨后春笋般蓬勃发展。然而&#xff0c;随之而来的数据处理与管理挑战也日益凸显。面对海量的设备运…

返回当前栈内最小元素

设计一个栈&#xff0c;包含传统的push&#xff0c;pop&#xff0c;top方法。此外&#xff0c;再设计一个getMin函数&#xff0c;用于返回栈内最小的元素。 思想&#xff1a;存储普通的数据元素用eStack,存储最小值用栈minStack。当eStack存一个元素时&#xff0c;minStack记录…

react native(expo)选择图片/视频并上传阿里云oss

1.引入相关库&#xff1a; ant-design/react-native ant风格UI库 expo-file-system 文件访问 expo-image-picker 图片/视频选择器 2.新建图片选择并上传的帮助类 import { Toast } from ant-design/react-native; import * as FileSystem from "expo-file-system"…

Android系列基础知识总结

四大组件 Activity Activity生命周期 不同场景下Activity生命周期的变化过程 启动Activity&#xff1a; onCreate()—>onStart()—>onResume()&#xff0c;Activity进入运行状态。Activity退居后台&#xff1a; 当前Activity转到新的Activity界面或按Home键回到主屏&a…

前端-CDN的理解及CDN一些使用平台

目录 1.CDN的概念 &#xff08;1&#xff09; 分发服务系统 &#xff08;2&#xff09;均衡负荷系统 &#xff08;3&#xff09;运营管理系统 &#xff08;4&#xff09;缓存系统 &#xff08;5&#xff09;支撑系统 2.CDN的基本工作原理 3.CDN使用缓存资源过程 4.CDN…

前端Vue框架实现html页面输出pdf(html2canvas,jspdf)

代码demo&#xff1a; <template><el-dialog class"storageExportDialog" :fullscreen"true" title"" :visible.sync"visible" v-if"visible" width"600px"><div id"exportContainer" …

[极客大挑战 2019]Http

1、访问题目链接 2、查看页面源码发现一个Secret.php的跳转页面 3、访问Secret.php发现页面有提示&#xff0c;它说它不是来自这个网页 4、抓包修改来源 添加&#xff1a;Referer: https://Sycsecret.buuoj.cn 发送查看响应 5、修改User-Agent为&#xff1a;Syclover 6、添加X-…

【Qt系列样式表】探索Qt Widget的艺术化设计与应用(Macos风格)(持续更新中...)

✨✨ Rqtz 个人主页 : 点击✨✨ &#x1f308;Qt系列专栏:点击 &#x1f388;PyQt系列专栏:点击&#x1f388; &#x1f388;Qt智能车上位机专栏: 点击&#x1f388; &#x1f388;Qt串口助手专栏:点击&#x1f388; &#x1f4ab;宗旨:共享IT之美,共创机器未来 目录 界面…