iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >项目中如何根据vue版本进行差异化处理
  • 210
分享到

项目中如何根据vue版本进行差异化处理

2023-07-04 20:07:48 210人浏览 八月长安
摘要

这篇文章主要介绍“项目中如何根据Vue版本进行差异化处理”,在日常操作中,相信很多人在项目中如何根据vue版本进行差异化处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”项目中如何根据vue版本进行差异化处理

这篇文章主要介绍“项目中如何根据Vue版本进行差异化处理”,在日常操作中,相信很多人在项目中如何根据vue版本进行差异化处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”项目中如何根据vue版本进行差异化处理”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

最近在初始化搭建一个项目时,遇到了一个控制台报错问题,lib_exports.getCurrentInstance is not a function,在排查这个问题的过程中学到了一些知识:vue有很多个版本,如2.6.x2.73.x,不同的vue版本存在使用差异,而不同的项目里会用到不同的vue版本,假设有一个公共工具需要提供给不同的项目使用,那么工具要如何根据不同项目里的vue版本进行差异化处理呢?可以自己先想一下如何实现,然后带着问题思考继续阅读下去。

项目中如何根据vue版本进行差异化处理

初步排查

从报错截图中可以看到,直接原因是vueuseuseVModel方法中调用了getCurrentInstance方法导致的控制台报错。从vueuse源码里就能看到vueuse是从vue-demi导入了getCurrentInstance方法。

接着看vue-demi的源码,如下图,发现不对啊,我这项目用的vue版本是vue2,为什么代码里的isVue = true?而且getCurrentInstance是vue2.7、vue3才内置的,vue2.7之前只能通过@vue/composition-api去使用getCurrentInstance

项目中如何根据vue版本进行差异化处理

vue-demi原理

vue-demi是一个同时支持为vue2.x、vue3.x编写工具的工具库,vueuse就是利用这个库来抹平vue2.6.x、vue2.7、vue3.x之间的一些差异。

查看vue-demipackage.JSONscripts部分,可以看到它配置了postinstallnpm script钩子,postinstall钩子会在你执行pnpm install命令完成之后执行钩子。

项目中如何根据vue版本进行差异化处理

我们接着看node_modules/vue-demi/scripts/postinstall.js做了些什么,它首先会去尝试加载vue(require('vue'))。这里要注意一下,如果你在vite或者webpack中配置了vue别名,比如{ find: /^vue$/, replacement: '@xf/vue' },,对脚本这里是不生效的,因为脚本是在安装依赖后立即执行的,这个时机还没有启动项目呢,跟vite没有关联。

尝试加载vue之后,就判断条件执行switchVersion方法。

项目中如何根据vue版本进行差异化处理

switchVersion方法主要做的事情根据传入的版本号参数,拷贝不同的配置内容,替换到目标文件中。

项目中如何根据vue版本进行差异化处理

如果是vue2.5、vue2.6,那么它拷贝的是下面的源码内容:

项目中如何根据vue版本进行差异化处理

如果是vue3,那么它拷贝的是下面的源码内容:

项目中如何根据vue版本进行差异化处理

vue-demi实现针对不同vue版本进行差异化处理的原理就是这样子。

根本原因和解决方案

回到项目里的控制台报错问题来,这里是因为vue-demi识别不到项目里的vue,因为项目里安装的是魔改vue源码之后的@xf/vue,没有pnpm add vue。识别不到,vue-demi就使用了默认配置(默认配置是vue3配置)。

代码运行时我们用的vue是vue2.5.X,尝试import { getCurrentInstance } from 'vue'肯定是会报错的。

解决方案就是vue-demi提供了手动切换vue版本配置的命令,我们给项目配置prepare的npm脚本:npx vue-demi-switch 2,配置好之后,每次安装项目依赖时都会执行,手动切换到vue2配置。

到此,关于“项目中如何根据vue版本进行差异化处理”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 项目中如何根据vue版本进行差异化处理

本文链接: https://www.lsjlt.com/news/347380.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 项目中如何根据vue版本进行差异化处理
    这篇文章主要介绍“项目中如何根据vue版本进行差异化处理”,在日常操作中,相信很多人在项目中如何根据vue版本进行差异化处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”项目中如何根据vue版本进行差异化处理...
    99+
    2023-07-04
  • 一文详解项目中怎么根据vue版本进行差异化处理
    怎么根据版本进行差异化处理?下面本篇文章给大家介绍一下根据项目里的vue版本进行差异化处理的方法,希望对大家有所帮助!最近在初始化搭建一个项目时,遇到了一个控制台报错问题,lib_exports.getCurrentInstance is ...
    99+
    2023-05-14
    Vue.js JavaScript 前端
  • 如何处理vue项目异常
    这篇文章主要介绍如何处理vue项目异常,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!背景你还在为处理Uncaught (in promise) ReferenceError烦恼吗?你...
    99+
    2024-04-02
  • 如何在SpringBoot项目里进行统一异常处理
    目录1、处理前2、进行系统异常全局处理3、进行自定义异常处理效果前言: 需要了解的知识: @ControllerAdvice的作用 1、处理前 异常代码: @ApiOperatio...
    99+
    2024-04-02
  • 怎么在Java项目中对异常进行处理
    本文章向大家介绍怎么在Java项目中对异常进行处理的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页...
    99+
    2023-06-06
  • Android项目中如何使用adapter对数据进行处理
    本篇文章给大家分享的是有关Android项目中如何使用adapter对数据进行处理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体如下:package com.cvte.ap...
    99+
    2023-05-31
    android adapter roi
  • 如何对Java项目进行安全处理
    本篇文章为大家展示了如何对Java项目进行安全处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、URL中参数显示问题,解决方案:普通Get请求修改为Post请求参数加密(js加密,Java解密)...
    99+
    2023-05-31
    java ava
  • 如何利用GitLab进行项目版本发布和回滚
    如何利用GitLab进行项目版本发布和回滚引言:在软件开发过程中,项目的版本发布和回滚是开发团队必不可少的一项工作。GitLab是一款功能强大的版本控制系统,它提供了丰富的功能和工具来管理和发布项目的不同版本。本文将介绍如何利用GitLab...
    99+
    2023-10-22
    回滚 gitlab 版本发布
  • Angular如何结合Git Commit进行版本处理
    这篇文章主要介绍Angular如何结合Git Commit进行版本处理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!上图是页面上展示的测试环境/开发环境版本信息。后面有介绍上图表示的...
    99+
    2024-04-02
  • 如何在Python中进行异常处理
    目录一、抛出异常和自定义异常1、raise语句2、自定义异常类型二、捕捉异常1、捕捉多个异常2、获取异常信息三、finally子句一、抛出异常和自定义异常 Python中使用用异常对...
    99+
    2024-04-02
  • PHP中如何进行异常数据检测和处理?
    在编写PHP应用程序时,异常数据可能会在很多情况下出现。例如,用户提交的表单数据可能会包含不合法的输入,像特殊字符或过长的文本。在这种情况下,应该对异常数据进行有效的检测和处理,以避免安全漏洞或程序崩溃的发生。本篇文章将介绍PHP中如何进行...
    99+
    2023-05-22
    异常处理 数据检测 PHP
  • vue项目中的数据变化被watch监听并处理
    目录vue数据变化被watch监听处理监听当前vue文件数据监听vuex中的数据如何正确使用watch监听属性变化基本用法监听object初始化变量触发监听回调vue数据变化被wat...
    99+
    2024-04-02
  • 如何进行PHP的国际化和本地化处理?
    随着互联网的不断发展,全球市场的需求越来越重要,而PHP作为一门广泛应用于Web应用开发的编程语言,也越来越需要进行国际化和本地化处理,以适应不同国家和地区的用户需求。本文将介绍PHP的国际化和本地化处理的基础知识和实现方法。一、国际化和本...
    99+
    2023-05-14
    PHP 国际化 本地化
  • 如何使用 Git 进行 Java 项目的版本控制和协作?
    Git 是一种分布式版本控制系统,它可以帮助我们更好地管理和协作开发 Java 项目。本文将介绍如何使用 Git 进行 Java 项目的版本控制和协作。 一、Git 简介 Git 是一种分布式版本控制系统,它最初由 Linus Torval...
    99+
    2023-09-04
    git apache windows
  • 如何在Spring Boot中进行异常处理
    这篇文章将为大家详细讲解有关如何在Spring Boot中进行异常处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。通过这篇文章,可以搞懂如何在 Sprin...
    99+
    2024-04-02
  • SpringBoot中如何进行统一异常处理
    目录1、处理前2、进行系统异常全局处理3、进行自定义异常处理总结如何在SpringBoot项目里进行统一异常处理 需要了解的知识 @ControllerAdvice的作用 1、处理前...
    99+
    2024-04-02
  • Windows 上的 Git 存储:如何在 Python 项目中进行有效的版本控制?
    版本控制是软件开发过程中的一个重要环节,它可以帮助开发者记录代码的变化和协作开发。Git 是一个广泛使用的分布式版本控制系统,它可以帮助开发者进行代码管理、版本控制和协作开发。在 Windows 上使用 Git 存储,可以让 Python...
    99+
    2023-07-07
    存储 git windows
  • Springboot项目中如何实现异常处理自定义
    这期内容当中小编将会给大家带来有关Springboot项目中如何实现异常处理自定义,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。背景Springboot 默认把异常的处理集中到一个ModelAndView...
    99+
    2023-05-31
    springboot 异常处理 目中
  • 如何在java项目中抛出一个异常处理
    本篇文章为大家展示了如何在java项目中抛出一个异常处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。java 抛出异常处理的方法为了避免调用的人不知道有异常,才抛出异常的,所以是谁掉用的久在哪里处...
    99+
    2023-05-31
    java ava 目中
  • 在java项目中如何对csv数据进行分割
    在java项目中如何对csv数据进行分割?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。java 分割csv数据的实例详解实际需要解析的csv中很多都是从excel中转过来的,数...
    99+
    2023-05-31
    java ava csv
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作