基本用法都知道的
params用法 this.$router.push({name:'heollo',params:''})
query用法 this.$router.push({path:'heollo',query:''})
params 在浏览器上只会显示路径,而query不一样,会将传过去的数据显示在地址栏上
适用场景不同:
我做了一个app 比如 在c页面上也想打开c页面,因为是文章内容页,这功能是必须的,
但是,用params时,c页面返回到c页面时,,c页面内容是空白,当然不需要引用数据的基本组件是显的,
所以出了问题,,一开始我是以为在vue上是不允许c页面打开c页面的,返回时所以是空白的
于是借鉴网上的方法,想打开一个新窗口的方式显示另一个c页面下面的方法中
window.open只能用query传参数,params为什么接收不到我也不知道。可能是自己的失误
const { href } = this.$router.resolve({
path: "/HelloWorld",
query:{
type:this.type,
}
});
window.open(href, '_blank');
这功能基本解决了问题,但是,有次要添加一个功能sociket.io聊天,发现打开一个窗口就会和其它窗口发生冲突,其它页面不能收到聊天信息,严重情况浏览器会崩溃,我也不知道为什么会崩溃
前段时间对vue不是很熟悉
所以想到了用query传参,,用query传参不能再query里在包裹一个json,因为可以发现浏览器窗口对于包裹的json显示的是object
用query传参的,c页面打开的c页面,第二个c页面返回到第一个c页面时,,第一个页面会自主向后台发送ajax请求
用parasm返回时不会向后台发送请求
所以,,对于不需要保密数据的,打开要传参的页面时尽量用query
废话太多,意思应该能理解,,因为解决这个问题花费了很多时间