Vue如何关闭当前页、关闭当前标签tagsView

发布时间:2022-08-09 14:02:39 作者:iii
来源:亿速云 阅读:618

这篇文章主要介绍“Vue如何关闭当前页、关闭当前标签tagsView”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue如何关闭当前页、关闭当前标签tagsView”文章能帮助大家解决问题。

由于项目使用tagsView,关闭当前页面需要通过关闭当前标签来实现 

涉及到几个点:

1. 移除 VisitedView 和 CachedView 中的当前项

2. 跳转到最后一次访问的标签

主要思路:比对 路由路径 ( this.$route.path)

两种方式:

一、 在vue页面直接实现

closePage()
      var currentView = this.$store.state.tagsView.visitedViews[0]
      for (currentView of this.$store.state.tagsView.visitedViews) {
        if (currentView.path === this.$route.path) {
          break
        }
      }
      this.$store.dispatch('tagsView/delView', currentView)
        .then(({ visitedViews }) => {
          if (currentView.path === this.$route.path) {
            const latestView = this.$store.state.tagsView.visitedViews.slice(-1)[0]
            if (latestView) {
              this.$router.push(latestView)
            } else {
              // 如果没有其他标签则跳转到首页
              if (currentView.name === '首页') {
                this.$router.replace({ path: '/redirect' + currentView.fullPath })
              } else {
                this.$router.push('/')
              }
            }
          }
        })

二、在js文件中写自定义函数,在vue页面中调用

import router from '@/router/routers'
 
// 关闭当前页 关联tagView
export function closePage(store, route) {
  var currentView = store.state.tagsView.visitedViews[0]
  for (currentView of store.state.tagsView.visitedViews) {
    if (currentView.path === route.path) {
      break
    }
  }
  store.dispatch('tagsView/delView', currentView)
    .then(({ visitedViews }) => {
      if (currentView.path === route.path) {
        const latestView = store.state.tagsView.visitedViews.slice(-1)[0]
        if (latestView) {
          router.push(latestView)
        } else {
          if (currentView.name === '首页') {
            router.replace({ path: '/redirect' + currentView.fullPath })
          } else {
            router.push('/')
          }
        }
      }
    })
}

关于“Vue如何关闭当前页、关闭当前标签tagsView”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

推荐阅读:
  1. HTML怎么关闭当前网页
  2. vue项目怎么刷新当前页面

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vue tagsview

上一篇:C语言如何实现倒置字符串

下一篇:vue怎么判断数组中的对象是否包含某个值

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》