# 页签操作 ## 打开/切换页签 `RouterTab` 通过响应路由变化来新增或切换页签,直接使用 `vue-router` 提供的方法即可。 参考文档:[Vue Router 导航](https://router.vuejs.org/zh/guide/essentials/navigation.html) 1. **`router-link` 组件方式** 打开和切换到页签 ``` html 页面1 ``` 全新打开页签 (**刷新已有页签**) ``` html 页面2” ``` 2. **通过 `router.push`、`router.replace`、`router.go`** 注意:在 Vue 实例内部,您可以通过 $router 访问路由实例。因此您可以调用 this.$router.push。 ``` javascript // 如果需要全新打开请加上: // this.$routerTab.refresh('/page/1') this.$router.push('/page/1') ``` ## 关闭页签 您可以通过 `RouterTab` 的实例方法 [`routerTab.close(location, fullMatch?)`](../../api/README.md#routertab-close) 来关闭页签 ::: tip 1. 在 Vue 实例内部,您可以通过 `$routerTab` 访问路由页签实例。因此您可以调用 `this.$routerTab.close`。 2. 当 `RouterTab` 组件只有一个页签,或者初始页签的 `closable` 配置为 `false`,页签关闭操作将不生效。 ::: **关闭当前页签** ``` js this.$routerTab.close() ``` **关闭指定页签** ``` js // 关闭指定 fullPath 的页签 this.$routerTab.close('/page/1') // 关闭指定 location 的页签 this.$routerTab.close({ name: 'page', params: { id: 2 } }) ``` **模糊关闭页签** ``` js // 关闭与给定地址共用页签的地址,即使地址不完全匹配 // 默认 `alive-id` 规则下,类似 '/page/1?query=2' 这样的页签也能被匹配关闭 this.$routerTab.close('/page/1', false) ``` ## 刷新页签 您可以通过 `RouterTab` 的实例方法 [`routerTab.refresh(location, fullMatch?)`](../../api/README.md#routertab-refresh) 来刷新页签 **刷新当前页签** ``` js this.$routerTab.refresh() ``` **刷新指定页签** ``` js // 刷新指定 fullPath 的页签 this.$routerTab.refresh('/page/1') // 刷新指定 location 的页签 this.$routerTab.refresh({ name: 'page', params: { id: 2 } }) ``` **模糊刷新页签** ``` js // 刷新与给定地址共用页签的地址,即使地址不完全匹配 // 默认 `alive-id` 规则下,类似 '/page/1?query=2' 这样的页签也能被匹配刷新 this.$routerTab.close('/page/1', false) ``` ## 刷新所有页签 您可以通过 `RouterTab` 的实例方法 [`routerTab.refreshAll(force?)`](../../api/README.md#routertab-refreshall) 来刷新所有页签 **刷新所有页签** ``` js this.$routerTab.refreshAll() ``` **强制刷新所有页签**,忽略页面组件的 `beforePageLeave` 配置 ``` js this.$routerTab.refreshAll(true) ```