vue-router router.push 新窗口打开
时间: 2023-10-14 18:13:30 浏览: 96
要在新窗口中打开路由,请使用以下代码:
```
<router-link :to="{ path: '/your-path' }" target="_blank">Open in new window</router-link>
```
或者,在JavaScript中使用`router.push`:
```
this.$router.push({ path: '/your-path' }, '_blank');
```
请注意,这将取决于浏览器设置和是否启用了弹出窗口阻止程序。
相关问题
在<script setup lang='ts'> 下 如何用vue-router router.push 在新窗口打开页面
可以使用以下代码:
```typescript
import { useRouter } from "vue-router";
const router = useRouter();
const openNewWindow = (path: string) => {
window.open(router.resolve({ path }).href, "_blank");
};
// 在需要打开新窗口的地方调用 openNewWindow 方法
```
在这个例子中,我们首先导入 `useRouter` 方法来获取当前路由的实例。然后,我们定义了一个 `openNewWindow` 方法,该方法接受一个路径参数,该路径参数将用于打开新窗口。在方法内部,我们使用 `router.resolve` 方法来解析路径并获取完整的 URL。然后,我们将 URL 传递给 `window.open` 方法,并使用 `_blank` 参数来指示在新窗口中打开页面。最后,在需要打开新窗口的地方调用 `openNewWindow` 方法即可。
vue-router中router.replace和router.push有什么不同
在Vue.js应用程序中,Vue-Router是一个非常流行的路由管理库。Vue-Router提供了两种导航路由的方式:router.push()和router.replace()。
router.push()会向history栈中添加一个新的记录,当用户点击浏览器后退按钮时,会回到前一个页面。而router.replace()也会向history栈中添加一个新的记录,但是它不会增加新的历史记录,而是替换当前的历史记录,所以当用户点击浏览器后退按钮时,不会回到前一个页面,而是直接回到上上个页面。
举个例子:假设我们从页面A跳转到页面B,如果使用router.push(),那么浏览器的历史栈中会增加一个记录,当用户点击后退按钮时会回到页面A;如果使用router.replace(),那么页面B会替换掉页面A在历史栈中的记录,当用户点击后退按钮时会直接回到上一个页面(可能是其他页面,而不是页面A)。
因此,router.push()和router.replace()的主要区别在于是否在history栈中增加新的记录。如果希望用户可以回到前一个页面,则应该使用router.push();如果不希望用户回到前一个页面,则应该使用router.replace()。
阅读全文