vue所有页面刷新一次mounted(以及所有生命周期函数)执行两次的解决方法
刚开始我发现页面每刷新一次,接口都请求两次,我以为是因为axios发送OPTIONS预检请求,但是我发现两次请求都是正常的get或者是post请求,并且只有在页面刷新的时候请求才触发两次,点击查询或者换页的时候请求只执行一次,我就猜想是不是mouted被执行了两次,然后我试着在mounted里输出数值,发现真的输出了两次,并且destoyed并没有执行,这意味着几乎同时执行了两个实例。那么问题就.
·
刚开始我发现页面每刷新一次,接口都请求两次,我以为是因为axios发送OPTIONS预检请求,但是我发现两次请求都是正常的get或者是post请求,并且只有在页面刷新的时候请求才触发两次,点击查询或者换页的时候请求只执行一次,我就猜想是不是mouted被执行了两次,然后我试着在mounted里输出数值,发现真的输出了两次,并且destoyed并没有执行,这意味着几乎同时执行了两个实例。那么问题就很容易解决了,只要找到哪里有实例重复,删除掉就好了。
- 在网上发现很多人都是因为使用了v-if造成的,然后使用v-show就可以解决,但是这种情况大多数是在单个页面出现生命周期函数执行两次,显然无法解决我的问题
- 因为我的是在所有页面都会出现这种问题,所以大概率是公共实例重复了,然后我就发现在main.js里面重复声明了实例。删除一个就好了。
更多推荐
已为社区贡献5条内容
所有评论(0)