所在的位置: js >> js市场 >> VUE版本引起的BUG

VUE版本引起的BUG

北京中西青春痘医院 https://m-mip.39.net/baidianfeng/mipso_8743276.html

前言:VUE目前已经是大前端开发的必学知识了,用起来简单、方便、快捷;数据绑定等各种特性让后端开发也可以快速的上手;优秀的前端框架,element-ui等。那其实VUE也有一些问题,因为大部分都在用第三方的组件,那么这时候其实就有一个版本更新迭代的问题了。

如何发生的?

我们在今天进行了线上前端项目的更新,发布之后,在测试一个拖拽模块的时候发现,定位完全错乱。

定位问题

针对有问题的层级进行对比发现,线下渲染之后的代码:

divclass=xxstyle=position:absolute;left:px;top:px;/div

我们在看线上的渲染之后代码:

divclass=xxstyle=transform:translate(xxxxx);/div

思路

查看线上和本地引入的js查看本地代码查看Git提交记录以上检查完之后,没有任何异常,因为根本无任何人更新过那个代码。然后就比较头大了...

查看拖拽组件

终于看出点问题,该组件在2天内升级过小版本,但是并未说明升级了什么;

经过线上与本地的测试,发现该组件把默认为绝对定位的方式给修改为了translate,这时候的定位就出现了严重的偏移。

查看package.json

发现使用了“^”

^2.1.0解释:如果在一个新环境下去执行npminstall,那么会去寻找2.x.x的最新版本

这时候就可以很明白了,本地使用的是2.1.0版本,但是线上默认用了2.1.2版本,导致了不向下兼容问题。

解决

在开发的过程中,我们使用了组件的时候尽量去使用当前的版本,不要使用自动这种升级的方式,以避免出现这种不控的BUG,还很难定位问题;其实这个问题定位花费了2个小时...

扩展

^代表从1.x.x版本去寻找最新的,但不会突破1所以同样,如果是2,那就是2.x.x最新的版本

~代表从1.1.x版本去寻找最新的,但不会突破1.1所以同样,如果1.2,那就是1.2.x最新版本

1.1.0代表直接就使用这个版本,特别指定,不使用自动升级到其它版本

以上都是经验,希望大家可以共同学习




转载请注明:http://www.aierlanlan.com/rzdk/2888.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了