IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue2项目升级vue3、vue-router3升vue-router4小记 -> 正文阅读

[JavaScript知识库]vue2项目升级vue3、vue-router3升vue-router4小记

之前的包版本

看视频的时候发现vue3的一些基础配置代码有变,比如出使用createApp,app.use(),app.mount(’#app’)等,跟我现在的vue2 new Vue以及vue-router的方法上都有不同,我一直以为自己是vue3,本着追求新事物的想法,下午心血来潮把项目的vue和vue-router版本升级了一下,这是之前的package.json

 "dependencies": {
    "@tweenjs/tween.js": "^18.6.4",
    "axios": "^0.21.1",
    "dat.gui": "^0.7.7",
    "element-ui": "^2.4.5",
    "stats.js": "^0.17.0",
    "three": "^0.124.0",
    "three.meshline": "^1.3.0",
    "vue": "^2.6.11",
    "vue-router": "^3.2.0"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-plugin-router": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "babel-eslint": "^10.1.0",
    "babel-plugin-component": "^1.1.1",
    "core-js": "^3.8.3",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.2.2",
    "less": "^4.0.0",
    "less-loader": "^7.2.0",
    "vue-cli-plugin-element": "^1.0.1",
    "vue-template-compiler": "^2.6.11"
  },

注意一下vue,vue-router,element-ui 以及vue-template-compiler

更新版本嘛,多简单

vue来个3.0.0好了,vue-router来个4.0.0,保存package.json,npm install,走你~
好嘛,遇到了不少问题,这些问题主要在于配置而不是vue3代码方法名的改变,因为我在看教学视频,所以代码里的方法我已经改好了,甚至超前了版本,比如我老早就写好了路由里的

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
}) 

但是那时还是vue2,找不到createWebHistory这个方法,所以坑主要在于配置上面;

遇到的几个坑

  1. vue2才有vue-template-compiler,前面我贴的pakcage.json里的开发依赖里最后一个,vue3里不需要了,改成了@vue/compiler-sfc,不然可能会报TypeError: Cannot read property ‘parseComponent‘ of undefined的错;另外,还需要安装 vue-loader,可以尝试这两行命令
npm i @vue/compiler-sfc@latest
npm i vue-loader@next
  1. 再一个坑是element-ui的坑,到了vue3应该用element-plus,贴一个main.js里的全部引用方式,其实和element-ui一样,就是下载个新的包,代码里改下名字,不过如果是部分引用,改的就多一些了,这个自行谷歌吧
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

另外还有个问题,可能是element-plus的问题,之前页面是用element-ui写的,改了之后两个el-form-item里的两个按钮位置变了,好像是el-form-item加css的class没用,我的做法是在el-form-item下、也就是两个按钮的上面一层,加一层div,把class给div,就和原来一样了;在就是导航菜单出了问题,直接去官方文档看就可以;

  1. 最后报了一个让我To install it, you can run: npm install --save core-js/core/object的错,但是运行这个命令总是也不行,最后发现是代码里不小心加了一行,好像是import {object } from 'core-js/core/object',应该是自动补全的;
  2. 再就是为了保证three.js页面的性能,vue2里在beforeDestory里把this.XXX都清空了,换成vue3之后页面好卡,结果这个方法根本没执行,原来是vue3的生命周期里这个方法改名成beforeUnmount了,害;

现在的package.json

"dependencies": {
    "@tweenjs/tween.js": "^18.6.4",
    "axios": "^0.21.1",
    "dat.gui": "^0.7.7",
    "element-plus": "^1.0.2-beta.55",
    "element-ui": "^2.4.5",
    "stats.js": "^0.17.0",
    "three": "^0.124.0",
    "three.meshline": "^1.3.0",
    "vue": "^3.1.4",
    "vue-loader": "^16.2.0",
    "vue-router": "^4.0.10"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-plugin-router": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "@vue/compiler-sfc": "^3.1.4",
    "babel-eslint": "^10.1.0",
    "babel-plugin-component": "^1.1.1",
    "babel-plugin-import": "^1.13.3",
    "core-js": "^3.15.2",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.2.2",
    "less": "^4.0.0",
    "less-loader": "^7.2.0",
    "vue-cli-plugin-element": "^1.0.1"
  },

package.json前后git对比

在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:22:27  更:2021-07-13 17:23:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 16:25:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码