vue-cli3+vue2+elementUI+avue升級到vite+vue3+elementPlus+avue總結

上一個新公司接手了一個vue-cli3+vue2+vue-router3.0+elementUI2.15+avue2.6的后臺管理項目,因為vue2在2023年底已經不更新維護了,elementUI也只支持到vue2,然后總結了一下vue3的優勢,最后批準升級成為了vite+vue3+vue-router4.5+elementPlus2.9+avue3.6,并向下兼容vu2。

那么現在開始升級:

第一步:

先搭建一個vite項目。

在這里說一下,前期調研的時候是有兩種方案的,一種是先把vue-cli3升級到vue-cli4支持vue3,然后再把webpack換成vite。第二種是直接遷移到vite+vue3項目上,然后根據報錯修改。最后決定用第二種,因為快!簡單粗暴!

搭建vite+vue3項目就不多說了,官網都有介紹直接執行下面代碼就行。

npm?init vite@latest

執行好以后安裝路由vue-router

cnpm install vue-router --save

第二步:

創建router文件夾,在下面建一個router.ts和index.ts


routes.tsimport { RouteRecordRaw } from 'vue-router';//對外暴露配置路由
export const routes: Array<RouteRecordRaw> = [{path: '/',name: 'home',component: () => import('@/pages/home.vue'), // 注意這里要帶上 文件后綴.vuemeta: {}},//要注意vue3 404頁面寫法,這是Path不能直接用*{path: '/:catchAll(.*)*',    // 匹配所有路徑  vue2使用*   vue3使用/: pathMatch(.*)* 或 /: pathMatch(.*) 或 /: catchAll(.*)redirect: '/404',},
]
index.ts://通過vue-router插件實現模板路由配置
import { createRouter, createWebHashHistory } from 'vue-router'
import { routes } from './routes'
//創建路由器
const router = createRouter({//路由模式根據需求選擇history: createWebHashHistory(),routes: routes,
})
export default router

你如果是直接把vue2項目的路由文件直接復制過來的,需要注意2點:

1、每個文件后面之前省略的.vue必須要加上。

2、404頁面的path不能是通配符*,要修改為/:pathMatch(.*)或是/:catchAll(.*)

第三步:

安裝sass、axios、vuex(如果你之前是用的vuex就直接安裝vuex,如果之前沒有建議用pinia)、element-plus和@element-plus/icons-vue、avue(如果用到了avue就安裝沒有的話不用安)等你當前項目中依賴的一些包。

怎么安裝就不多說了,不過element-plus @element-plus/icons-vue是必須要安裝的因為之前的elementui不支持vue3。安裝完以后介紹一個轉換神器gogocode。

可以把你原來的vue2項目的代碼轉成兼容vue3的,把elementUI轉成兼容elementPlus的。

直接上官方連接,根據官方介紹直接轉換就行,先執行vue2轉vue3,再執行elementUI轉elementPlus。

Vue2 到 Vue3 升級插件

Element to Element Plus 升級插件

第四步:

設置兼容vue2。根據vue官網的介紹,下載@vue/compat包,如果存在?vue-template-compiler?的話,將其替換為?@vue/compiler-sfc

npm i @vue/compat -S

然后在vite.config.ts里面修改:

// vite.config.js
export default {resolve: {alias: {vue: '@vue/compat'}},plugins: [vue({template: {compilerOptions: {compatConfig: {MODE: 2}}}})]
}

官網就介紹到上面,可我這配置好以后,就是不兼容vue2,最后發現在main.ts里面也要配置。

在main.ts里面添加以下代碼:

// 啟用 Vue 2 兼容模式
import { configureCompat } from '@vue/compat';
configureCompat({ MODE: 'Vue2'});

這樣再npm run dev試試,應該就可以啟動起來了。

下面就是每個頁面點一下看看報錯了,根據報錯修改了。

以下是可能存在的問題:

1、頁面中引入的vue組件,后面沒有加.vue的要加上.vue,要不報錯。

2、elementUI升級elementPlus后樣式可能會有出入,要統一在全局樣式修改。

3、所有頁面引入ICON圖標的,因為@element-plub/icon圖標名稱有一些和elementUI的圖標名稱有出入,所以要根據官方提供的修改。icon名稱參考:https://element-plus.org/zh-CN/component/icon.html

4、如果你用到了avue-crud里面的字典項,那么要確認一下dicUrl和dicHeaders是否還正確,我這里dicUrl不對,所以請求不到導致頁面加載很慢,排查半天才發現。

5、全局搜索yyyy-MM-dd替換為YYYY-MM-DD

6、頁面中所有require引入要改為import方式引入

7、頁面中所有的::v-deep和/deep/要改為:deep()

8、vue-router升級到4.5以后name名稱必須是唯一的,如果有重復的話頁面是打不開的,因為路由加載就報錯了。

9、時間選擇器變成了英文,查看官方說明要在main.ts里面引入國際化,如下:

import ElementPlus from 'element-plus'
import zhCn from 'element-plus/es/locale/lang/zh-cn'app.use(ElementPlus, {locale: zhCn,
})

目前這是我發現的錯誤,升下的就一個頁面一個頁面點擊查看報錯修復就行。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71639.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71639.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71639.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot實戰(三十五)微服務集成OAuth2.0(UAA)

目錄 一、知識回顧1.1 什么是 OAuth2 協議&#xff1f;1.2 OAuth2 的4個角色1.3 OAuth2 的3種令牌1.4 OAuth2 的5種認證方式1.5 OAuth2 內置接口地址 二、UAA介紹2.1 概述2.2 UAA的主要功能2.3 UAA 的應用場景 三、微服務集成3.1 集成示例介紹3.2 集成測試 一、知識回顧 在進行…

紅果短劇安卓+IOS雙端源碼,專業短劇開發公司

給大家拆解一下紅果短劇/河馬短劇&#xff0c;這種看光解鎖視頻&#xff0c;可以掙金幣的短劇APP。給大家分享一個相似的短劇APP源碼&#xff0c;這個系統已接入穿山甲廣告、百度廣告、快手廣告、騰訊廣告等&#xff0c;類似紅果短劇的玩法&#xff0c;可以看劇賺錢&#xff0c…

從0開始的操作系統手搓教程23:構建輸入子系統——實現鍵盤驅動1——熱身驅動

目錄 所以&#xff0c;鍵盤是如何工作的 說一說我們的8042 輸出緩沖區寄存器 狀態寄存器 控制寄存器 動手&#xff01; 注冊中斷 簡單整個鍵盤驅動 Reference ScanCode Table 我們下一步就是準備進一步完善我們系統的交互性。基于這個&#xff0c;我們想到的第一個可以…

百度SEO關鍵詞布局從堆砌到場景化的轉型指南

百度SEO關鍵詞布局&#xff1a;從“堆砌”到“場景化”的轉型指南 引言 在搜索引擎優化&#xff08;SEO&#xff09;領域&#xff0c;關鍵詞布局一直是核心策略之一。然而&#xff0c;隨著搜索引擎算法的不斷升級和用戶需求的多樣化&#xff0c;傳統的“關鍵詞堆砌”策略已經…

Python ? Unix時間戳轉日期或日期轉時間戳工具分享

設計一款Unix時間戳和日期轉換工具&#xff0c;其代碼如下&#xff1a; from datetime import datetimeclass Change_Date_Time(object):def __init__(self, date_strNone, date_numNone):self.date_str date_strself.date_num date_num# 轉時間戳def datetime2timestamp(s…

【目標檢測】【NeuralPS 2023】Gold-YOLO:通過收集與分發機制實現的高效目標檢測器

Gold-YOLO&#xff1a; Efficient Object Detector via Gather-and-Distribute Mechanism Gold-YOLO&#xff1a;通過收集與分發機制實現的高效目標檢測器 0.論文摘要 在過去的幾年中&#xff0c;YOLO系列模型已成為實時目標檢測領域的領先方法。許多研究通過修改架構、增強數…

π0源碼解析——一個模型控制7種機械臂:對開源VLA sota之π0源碼的全面分析,含我司的部分落地實踐

前言 ChatGPT出來后的兩年多&#xff0c;也是我瘋狂寫博的兩年多(年初deepseek更引爆了下)&#xff0c;比如從創業起步時的15年到后來22年之間 每年2-6篇的&#xff0c;干到了23年30篇、24年65篇、25年前兩月18篇&#xff0c;成了我在大模型和具身的原始技術積累 如今一轉眼…

K8s 1.27.1 實戰系列(六)Pod

一、Pod介紹 1、Pod 的定義與核心設計 Pod 是 Kubernetes 的最小調度單元,由一個或多個容器組成,這些容器共享網絡、存儲、進程命名空間等資源,形成緊密協作的應用單元。Pod 的設計靈感來源于“豌豆莢”模型,容器如同豆子,共享同一環境但保持隔離性。其核心設計目標包括…

企業日常工作中常用的 Linux 操作系統命令整理

Linux 操作系統命令整理 在企業級運維、開發和日常工作中&#xff0c;Linux 命令是繞不開的核心技能。不論是日志排查、進程管理&#xff0c;還是高效運維優化&#xff0c;掌握這些命令都能讓你事半功倍&#xff01;本篇文章整理了自己在日常工作中積累最常用的 Linux 命令&am…

實現NTLM relay攻擊工具的Python代碼示例

以下是一個實現NTLM relay攻擊工具的Python代碼示例&#xff0c;該工具可以完成自動掃描IP、配置相關協議、獲取hash、自動化設置和執行攻擊步驟等功能。 代碼思路 IP掃描&#xff1a;使用scapy庫進行IP掃描&#xff0c;找出活躍的IP地址。Responder配置&#xff1a;自動配置…

Kotlin和Java區別

哈哈哈&#xff0c;前段時間&#xff0c;面試的時候&#xff0c;突然問到我Kotlin和Java的區別&#xff0c;一下子把我問懵逼了&#xff0c;確實沒遇到問這個的&#xff0c;想了下&#xff0c;說了下Kotlin的編譯時空檢查機制&#xff0c;代碼更簡潔&#xff0c;很多封裝好的AP…

【大模型】大模型分類

大模型&#xff08;Large Models&#xff09;通常指參數量巨大、計算能力強大的機器學習模型&#xff0c;尤其在自然語言處理&#xff08;NLP&#xff09;、計算機視覺&#xff08;CV&#xff09;等領域表現突出。以下是大模型的常見分類方式&#xff1a; 1. 按應用領域分類 …

centos中使用svn整理

centos中使用svn整理 1. 安裝 SVN 客戶端2. 常見 SVN 用法及示例2.1 創建 SVN 倉庫2.2 檢出&#xff08;Checkout&#xff09;項目2.3 添加文件到版本控制2.4 提交&#xff08;Commit&#xff09;更改2.5 更新&#xff08;Update&#xff09;本地工作副本2.6 查看文件狀態2.7 查…

游戲元宇宙崛起:AI代理IP驅動虛擬世界“無限可能”?

在科技飛速發展的當下&#xff0c;游戲元宇宙正以一種前所未有的姿態崛起&#xff0c;它猶如一顆璀璨的新星&#xff0c;吸引著無數人的目光。而AI代理IP&#xff0c;正成為驅動這個虛擬世界展現“無限可能”的關鍵力量。 「快代理&#xff5c;11年專注企業級代理IP云服務 —…

基于Servlet + JSP 的物業管理系統

Javaweb物業管理系統&#xff5c;Java&#xff5c;Servlet | JavaWeb&#xff5c;web網站&#xff5c; 分管理員登錄&#xff0c;用戶登錄。 一、內容 項目源碼 配套文檔 環境部署教程 項目運行教程 二、技術介紹 技術應用&#xff1a; Servlet JavaBean CSS JSP 開發環…

Billing的patient balance的2個例子

Billing的patient balance的2個例子 第一個例子 下面是 0852醫院的00005641的計算&#xff1a; 主保險 Allowable: 78.81 Applied:61.79 CoInsurance:17.02 第二保險 Allowable: 15.76 Applied:15.76 我們在計算時是用主保險的Allowable: 78.81&#xff…

哪些培訓課程適合學習PostgreSQL中級認證知識?

PostgreSQL 中級工程師 PGCP 認證培訓&#xff1a;由重慶思 莊經驗豐富的講師鄭全老師授課。課程內容系統全面&#xff0c;涵蓋了 PostgreSQL 數據庫從基礎到高級的知識&#xff0c;包括數據庫的安裝、建庫、用戶與角色管理等基礎內容&#xff0c;也有性能調優、索引原理與應用…

計算機二級MS之PPT

聲明&#xff1a;跟著大貓和小黑學習隨便記下一些筆記供大家參考&#xff0c;二級考試之前將持續更新&#xff0c;希望大家二級都能輕輕松松過啦&#xff0c;過了二級的大神也可以在評論區留言給點建議&#xff0c;感謝大家&#xff01;&#xff01; 文章目錄 考題難點1cm25px…

第5章 使用OSSEC進行監控(網絡安全防御實戰--藍軍武器庫)

網絡安全防御實戰--藍軍武器庫是2020年出版的&#xff0c;已經過去3年時間了&#xff0c;最近利用閑暇時間&#xff0c;抓緊吸收&#xff0c;總的來說&#xff0c;第5章開始進入主機安全&#xff08;HIDS&#xff09;領域了&#xff0c;2022年的時候有幸做過終端安全一段時間&a…

Android 低功率藍牙之BluetoothGattCallback回調方法詳解

BluetoothGattCallback 是 Android 中用于處理藍牙低功耗&#xff08;BLE&#xff09;設備通信的核心回調類。它負責處理與 BLE 設備的連接、服務發現、數據讀寫等操作的結果。以下是對 BluetoothGattCallback 的詳細解析&#xff1a; 1. onConnectionStateChange 觸發時機&am…