vue里为什么所有页面的created钩子都执行了两次?
下图是我的router配置,均只有一层扁平化的,除了app.vue的created钩子只执行了一次,整个项目的其他所有页面的created生命周期都各自执行了两次(项目用到了mint-ui的tab组件,不知道是否和这个有关)
该如何解决才能让created只执行一次?它已经导致了很多获取数据的接口重复调用
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
你的 tab组件 的子组件 是不是用 v-for循环了? 被循环的组件内又写了 <router-view>? 你试试多加一个tab
<div id="app"> id="app" 和 index.html 的id 重复导致
找到问题的原因了,不止是created被执行了两次,是整个生命周期的钩子全都被执行了两次。原因是使用了mint-ui的tab组件导致了有重复的路由挂载(可能是我使用的姿势不对··),以及重复声明了vue的全局实例。删除多余的全局vue实例,正确使用tab组件即可
我没遇到过这种问题,你只能等遇到过同样问题的人来答,因为从你的描述跟一张图片就能找到问题原因的可能性为零
把你
mint-ui
版本升级一下 可能是它和vue的构建有重叠问题还有你
created
钩子执行相同逻辑俩次? 触发时间节点也类似一致?代码真是太少了 不要用图片代替代码,会被踩的~
我也遇到过这个问题,这不是路由问题,路由不会引起钩子函数重复执行。
重复执行的可能情况:
1、组件更新
组件更新可能有以下可能: