【Vue】Router 之 router.push 和 router.resolve 页面跳转区别

打开方式

router.push 只能当前窗口打开

router.resolve 结合 window.open 可以新窗口打开

参数传递

router.push 支持query和params

router.resolve 只支持query,若需地址栏参数不可见,需结合localStorage或第三方插件保存

this.$router.push

// 地址栏里带参
this.$router.push({
    
    
  path: '这里是path',
  query: {
    
    
    a: 1,
  },
});

// 地址栏里不带参
this.$router.push({
    
    
  name: '这里是name',
  params: {
    
    
    a: 1,
  },
});

this.$router.resolve

// 地址栏里带参
let data = this.$router.resolve({
    
    
  path: "/channel_sms",// 或者 name: 'channel_sms',
  query: {
    
    
    a: 1,
  },
});
window.open(data.href, '_blank');

// 地址栏里不带参
let data = this.$router.resolve({
    
    
  name: 'channel_sms',
});
localStorage.setItem('a', 1);
// 然后跳转页接收 localStorage.getItem('a');

猜你喜欢

转载自blog.csdn.net/qq_39900031/article/details/130376114