首页 > 其他分享 >router.beforeEach触发了两次?

router.beforeEach触发了两次?

时间:2023-03-12 15:56:58浏览次数:32  
标签:触发 beforeEach 点击 冒泡 关闭 router 页面

页面使用来记录打开过的页面,但是当点击关闭,关闭当前页面时,发现beforeEach触发了两次,并且当前页面重新被刷新。

<router-link v-for="view in visitedViews" :to="view.path" :key="view.path" :class="{active: route.path === view.path}" class="tags-view-item">
  <span v-text="view.meta.title"></span>
  <template v-if="view.path !== '/index'">
    <span v-show="route.path === view.path" class="close-icon">
      <el-icon @click="remove(view)">
          <component :is="'close'"></component>
      </el-icon>
    </span>
  </template>
</router-link>

当点击close图标时,remove方法被执行,因为存在事件冒泡,remove方法会先被执行,此时当前页面被关闭,并跳转到最近的一个页面,但是随着事件的冒泡,上层组件的click事件也会被触发,这时候又会重新进入到当前页面,造成点击页面关闭时,不但页面没有被关闭,反而重新加载的情况。

此时,在onclick中添加stop阻止事件的冒泡,从而解决问题。

<el-icon @click.stop="remove(view)">
  <component :is="'close'"></component>
</el-icon>

标签:触发,beforeEach,点击,冒泡,关闭,router,页面
From: https://www.cnblogs.com/wsd413/p/17208315.html

相关文章

  • VueRouter路由与Vuex状态管理
    路由的基本搭建与嵌套路由模式vue路由的搭建路由在vue中属于第三方插件,需要下载安装后进行使用。版本说明一下,Vue3搭配的是VueRouter4,目前正常安装的话,就是路由4的版本......
  • routers自动生成路由
    1.routers自动生成路由:1_1.routers自动生成路由代码:#自动生成路由第一步:导入router模块fromrest_frameworkimportrouters#自动生成路由第二步:有两个类,实例化得到对......
  • react-router 6.9更新内容
    有两种方式可以定义路由:传递ReactElements<Home/>或传递ReactComponentHome。但是如果它们同时存在,则以ReactComponent优先。缺点:通过ReactComponent方式定义无法......
  • vue项目vuerouter动态添加路由坑中之坑
    出了什么问题请求到的动态路由数据该如何应用?addRoute()?你想的太简单了!!!起因最近在用通过网络请求到的路由记录来进行动态路由渲染后端大佬说路由全部放前端不......
  • 用户切后台触发事件上报
    用户切后台触发事件上报,上报进程还没有走完,进程被杀掉,导致事件上报失败,缓存在本地,等待下次上报;用户切后台上报时,网络状况等原因,没有上报成功;​​https://weibo.com/ttartic......
  • React-router-dom@5
    路由的发展阶段后端路由阶段早期的网站开发整个HTML页面是由服务器来渲染的,服务器直接生产渲染好对应的HTML页面,返回给客户端进行展示但是,一个网站,有很多页面......
  • 自动播放(自动触发事件)
    如果不能自动播放,就模拟元素点击事件1、隐藏掉播放按钮2、模拟点击播放按钮//隐藏按钮document.getElementsByClassName('btn')[0].style.opacity=0;//模......
  • vue如何通过$router.push传参数
    如何通过$router.push传参数下面通过A页面向B页面传值来举个例子://A页面:this.$router.push({name:'页面B',params:{data:'我是要传递的参数'}})//B......
  • vue router中useRouter,userRoute的区别
    ......
  • oracle触发器详解
    原文地址: https://www.cnblogs.com/programmer-wind/archive/2011/09/10/2919585.html触发器是许多关系数据库系统都提供的一项技术。在ORACLE系统里,触发器类似过程和函......