vue 所有生命周期函数都执行了两遍的问题

在原有项目新增功能需求模块开发的过程中,发现无论哪一个模板中的created函数都被执行了两次,遂非常熟练的打开了百度…

网络上的解决办法有:

  • 解决方案1:检查main.js 中是否重复声明vue实例 (没有, pass
  • 解决方案2:据说使用了mixin的会调用两次 (尝试用一个干净的vue项目,使用一个简单的mixin文件,发现并没有执行两遍,把本项目的app文件其他内容全都注释,只留纯净的初始版本,发现也会调用两次。pass
  • 解决方案3:说什么路由配置问题(直接注掉路由的引用,还是调用了两遍,pass
  • 解决方案4:v-if引起,改成v-show (没用,pass)

网上找的方案都无法解决之后,开始自个一个一个点的排查。。。在追踪问题根源的最后,把main.js中所有其他的引用全部注释了,把app中的其他代码也全都注释了,只留下最初创建的项目代码,就这样,main.js还执行了两遍,那应该跟这些代码都没有干系!!!(#゚Д゚)于是打开index.html,看见如下代码:
在这里插入图片描述
这里是遍历js文件,在html中手动引入一遍。

那么如果原来默认的自动注入没有取消,就会导致所有的js重复引用一遍,即main.js会调用两次,即生命周期钩子函数会调用两次,啊问题就出在这里。因为在vue配置文件中,仅对生产环境取消了js默认注入,而本地开发环境还是正常处理,导致在开发环境的js重复引用,最终生命周期函数重复执行。

ps:

  • html-webpack-plugin 配置项中有一个inject属性
    • true|body:所有JavaScript资源插入到body元素的底部
    • head:所有JavaScript资源插入到head元素中
    • false:所有静态资源css和JavaScript都不会注入到模板文件中

找问题的同时学到了,奈斯~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值