首页 > 其他分享 >向着Vue3进发,Vue2.7升级指南

向着Vue3进发,Vue2.7升级指南

时间:2023-04-23 18:14:42浏览次数:37  
标签:指南 vue cli api Vue2 Vue3 Vue2.7

北京时间7月1号,Vue2.7正式发布,Vue2.7支持你的项目在不升级Vue3的情况下使用Vue3的特性,例如Composition Api、setup、Css v-bind等。

与此同时,Vue2.7也是Vue2.X的最终次要版本,在这个版本之后,Vue2将进入LTS(长期支持),即从现在开始持续18个月,Vue2将不再接收新功能。

对于一些老项目来说,当升级Vue3成本过大而你又垂涎Vue3新的api和代码组织方式时,那Vue2.7无疑是最佳选择,这可以让还在使用Vue2的同学更好的学习并过渡到Vue3。

接下来笔者将以一个Vue2的项目,将其升级到Vue2.7并记录该过程,欢迎感兴趣的小伙伴阅读。

升级前版本:vue: 2.6.14,vue-cli: 4.0.0

一、删除node_modules和package-lock.json

为了确保我们后面升级的依赖版本是正确的,在一开始时我们直接先将项目的node_modules和package-lock.josn删除,避免出现各种缓存问题。

二、升级过程

1. vue-cli脚手架升级

现在我们先按照要求升级脚手架的版本,Vue2.7对于要求vue-cli版本要求如下:

  • 如果你的vue-cli是v4版本的,那么你需要将其升级到~4.5.18
  • 如果你的vue-cli是v5版本的,那么你需要将其升级到~5.0.6
// package.json
{
    "devDependencies": {
        // "@vue/cli-plugin-babel": "^4.0.0",
        // "@vue/cli-plugin-eslint": "^4.0.0",
        // "@vue/cli-service": "^4.0.0",
        // 修改为
        "@vue/cli-plugin-babel": "^4.5.18",
        "@vue/cli-plugin-eslint": "^4.5.18",
        "@vue/cli-service": "^4.5.18",
    }
}

2. vue版本升级

// package.json
{
    "dependencies": {
        // "vue": "2.6.14",
        "vue": "2.7.0",
        // vue2.7 不再需要vue-template-compoler,所以可以将其删除
        // "vue-template-compiler": "2.6.14", 
    }
}

3. @vue/composition-api

有些人可能已经在Vue2的项目使用上了@vue/composition-api,这时你需要将项目中所用到的导入更新为vue:

// import { ref } from '@vue/composition-api'
import { ref } from 'vue'

但@vue/composition-api里的一些API,如createApp,并未完全在Vue2.7里移植,所以如果你用到了这些API,那还是使用继续使用@vue/composition-api,若你用到的API都是Vue2.7里有的,则可以将@vue/composition-api从依赖中删去了。

三、使用

经过上面的改动后,现在可以重新安装依赖并运行起来了,接着就可以品尝Vue3的新写法了。

<template>
  <div>
    <el-button @click="decrease">-</el-button>
    <el-button>{{ count }}</el-button>
    <el-button @click="increase">+</el-button>
  </div>
</template>

<script setup>
import { ref } from 'vue'

let count = ref(1)

const decrease = () => {
  count.value--
}

const increase = () => {
  count.value++
}
</script>

另外,Vue2.7支持在模板表达式中使用ESNext语法,这意味着可以在template里使用可选链了,以往在Vue2中,template里并不支持可选链写法,现在在Vue2.7里的template中则可以愉快的使用可选链了

<template>
  <div>
    {{ userInfo?.name }}
  </div>
</template>

<script setup>
import { ref } from 'vue'

let userInfo = ref(null)
</script>

四、eslint问题

在上面的代码中,会出现Eslint未使用变量的错误提示。

解决这个问题我们需要将eslint-plugin-vue版本升级到9+

npm i [email protected] -D

标签:指南,vue,cli,api,Vue2,Vue3,Vue2.7
From: https://www.cnblogs.com/jeecg158/p/17347318.html

相关文章

  • Vue3 customRef
    视频4.customRef作用:创建一个自定义的ref,并对其依赖项跟踪和更新触发进行显式控制。实现防抖效果:<template> <inputtype="text"v-model="keyword"> <h3>{{keyword}}</h3></template><script> import{ref,customRef}from'vue�......
  • Vue3 +element-plus+ wangEditor 富文本编辑器+前端七牛云上传
    我用的vue3,element-plus,没用ts搭建wangEditor 参考地址 https://www.cnblogs.com/xbxxf/p/16791084.html七牛云安装参考地址 https://blog.csdn.net/ldoit/article/details/121533204本来就是抄大佬的,就不复制粘贴了主要是整理关于七牛云部分的代码,秉着复制就能用的原则,我......
  • ai问答:使用 Vue3 组合式API 和 TypeScript 封装 echarts 折线图
    <template><divref="chart"style="height:500px;"></div></template><scriptlang="ts">import{ref,onMounted,watch}from'vue'import*asechartsfrom'echarts'e......
  • 提高开发生产力 - 生产力指南篇(之一)
    生产力指南篇-之一自行打开IDEA-help-Myproductity(旧版本叫ProductityGuide),idea统计的生产力特性,熟练掌握这些特性,开发事半功倍Tips:大部分特性包含快捷键炒作,快捷键因为WINMAC或者idea键位不同,然后IDEA提供了多种版本快捷键,所以选择自己适合的即可(sublime/ec......
  • Android Tencent Shadow 插件接入指南
    原文地址www.jianshu.com撒盐一、clone仓库二、测试编译三、将Shadow库发布到本地仓库四、宿主接入1添加依赖2添加代理Activity主题3清单文件注册代理Activity4在宿主中创建PluginManager管理工具a创建PluginManager文件升级器b创建插件进程服务c......
  • 【RT-Thread内核入门指南】P1-10学习笔记
    1、启动线程使用apirt_err_trt_thread_startup(rt_thread_tthread)启动线程启动线程并不是立刻执行线程,而是将其分配到就绪队列2、线程切换状态......
  • vue3 create-vue 开启vite自动验证eslint
    0.vue3 cli推荐新的构建工具vite,但没有yarnrundev后并不自动检测eslint规则,需要运行yarnruneslint1.添加组件即可 yarnadd vite-plugin-eslint--dev 2.在vite.config.js加入1import{fileURLToPath,URL}from'node:url'23import{defineConfig}......
  • ShareSDK第三方平台注册指南
    Android端平台开放平台地址APPkey申请流程抖音https://www.douyin.com/platform/apply/mobile链接新浪微博http://open.weibo.com链接微博开放平台接入tipsQQhttp://open.qq.com/链接微信微信开放平台链接企业微信企业微信开发者中心链接Linehttps://developers.line.me/链接Faceb......
  • vue3 keep-alive实现tab页面缓存
    先上图 如何在我们切换tab标签的时候,缓存标签最后操作的内容,简单来说就是每个标签页中设置的比如搜索条件及结果、分页、新增、编辑等数据在切换回来的时候还能保持原样。看看keep-alive是如何实现该功能的。首先我们要了解keep-alive的基本使用。具体介绍请查看官方文档(htt......
  • mac m1运行jeecgboot指南
    后端使用m1mac运行x86的docker镜像会有问题,需要更换镜像,并且把最后一个镜像给注释掉,手动启动。同时,需要修改hosts文件,添加记录127.0.0.1jeecg-boot-redis127.0.0.1jeecg-boot-mysqlmysql启动后,把db目录下的sql文件执行一下,然后启动java项目version:'2'ser......