vue中使用router打开一个新的窗口

一个单页应用打开一个新的窗口不是很好控制,比如权限的处理,因为原先的页面不会自动刷新,方法很简单:

let routeData = this.$router.resolve({
name: "housingDetails",
query: {id:id,domain:this.domain},
params:{id:id,domain:this.domain}
});
window.open(routeData.href, ‘_blank‘);

或者使用:
<router-link target="_blank" :to="{path:‘/home‘,query:{id:‘1‘}}">新页面打开home页</router-link>相当于 tag=‘a‘

经过尝试发现query的传值可以在新页面通过this.$route.query.id的方式取值,但是使用params时得注意你的路由定义的时候得是xxx/xxx/:id/:domain;否则你将取不到params值

原文地址:https://www.cnblogs.com/wangtaolearning/p/11219559.html

时间: 2024-07-29 10:51:43

vue中使用router打开一个新的窗口的相关文章

JS 点击元素发ajax请求 打开一个新窗口

JS 点击元素发ajax请求 打开一个新窗口 经常在项目中会碰到这样的需求,点击某个元素后,需要发ajax请求,请求成功以后,开发需要把链接传给前端(或者说请求成功后打开新窗口),前端需要通过新窗口打开这个链接,其实这样的原理大家可能觉得非常简单,想起来非常简单,用JS中的window.open就可以实现打开新的窗口,或者点击div元素,发ajax请求成功后,动态把链接传给a标签,然后再触发a标签事件,也可以实现,对吧?曾几何时,我也曾经把这样的问题发到JS群里面去,很多JS社区朋友说 龙恩 这

Window.open 实现导航与打开窗口,导航到一个特定链接地址,也可以打开一个新的浏览器窗体

语法 window.open(strUrl,strWindowName,strWindowFeatures ,replace) strUrl: 打开资源的地址 strWindowName: 表示窗体名称.如果该参数指定了一个已经存在的窗口,那么open()方法就不再创建一个新窗口,而只返回对指定窗口的引用.在这样情况下 fratures 将被忽略. strWindowFeatures :新窗口要显示的标准浏览器的特征 replace: 一个可选的布尔值.规定了装载到窗口的 URL 是在窗口的浏览

使用javascript打开一个新页而不被浏览器屏蔽

使用javascript打开一个新页面可以有几种方式,但各有利弊,以下做下分析 1.window.open(url) 这是新手最常用的方法,好处是简单易用,坏处,很简单,会被很多浏览器拦截而导致功能失效 2.使用js在页面创建一个a标签,然后点击它 示例代码如下: var a = document.getElementById("entergameform1001"); if(!a){ $(document.body).append('<a id="entergamef

Android读书笔记一:假设当前Activity为A,如果这时用户打开一个新的Activity B,那么B的onResume和A的onPause哪个先执行呢?

问题描述:假设当前Activity为A,如果这时用户打开一个新的Activity B,那么B的onResume和A的onPause哪个先执行呢? GitHub Demo 废话少说,上代码,Activity A : public class AActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceS

【VirtualBox】不能为虚拟电脑 xxx 打开一个新任务

发现Genymotion在打开虚拟机的时候提示报错,升级之前是正常的: 不能为虚拟电脑 xxx 打开一个新任务. Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #2' (VERR_SUPDRV_COMPONENT_NOT_FOUND). Failed to attach the network LUN (VERR_SUPDRV_CO

在程序中使用命令打开一个进程和记录该进程执行日志

//在需要的程序中调用ExcutedCmd函数来打开执行dos命令 //cmd 命令  args 命令参数 private static void ExcutedCmd(string cmd, string args) { using (Process p = new Process()) { ProcessStartInfo psi = new ProcessStartInfo(cmd, args); psi.CreateNoWindow = true; psi.UseShellExecute

Vitrualbox 桥接网卡界面名称未指定、Filters currently installed on the system have reached the limit、不能为虚拟电脑 打开一个新任务

1. 桥接网卡界面名称未指定 http://wenku.baidu.com/link?url=VFG0hknsDX3VPXQoX5f-g1wUX_LBl-lOj0ZqD222kM31iVCPJKVu3lfqh6UVwUWeU6gQW4TGLV-b5k8XynqjStcVj3woW5woaFQWQpAmDKK&qq-pf-to=pcqq.c2c 2. Filters currently installed on the system have reached the limit http://ww

VirtualBox加载虚拟光驱遇到的错误,不能为虚拟电脑 centos7 打开一个新任务.win7 64位主题原文件

不能为虚拟电脑 centos7 打开一个新任务. Unable to load R3 module C:\Program Files\Oracle\VirtualBox/VBoxDD.DLL (VBoxDD): GetLastError=1790 (VERR_UNRESOLVED_ERROR). 返回 代码:E_FAIL (0x80004005) 组件:Console 界面:IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6 遇到这个错误后,百度说是因为

不能为虚拟电脑 Kali-Linux-2019.2 打开一个新任务

Oracle VM VirtualBox安装心得 最近在安装Oracle VM VirtualBox 报错"不能为虚拟电脑 Kali-Linux-2019.2 打开一个新任务." Implementation of the USB 2.0 controller not found! Because the USB 2.0 controller state is part of the saved VM state, the VM cannot be started. To fix th