博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue用router.push(传参)跳转页面,参数改变,跳转页面数据不刷新的解决办法...
阅读量:5366 次
发布时间:2019-06-15

本文共 1388 字,大约阅读时间需要 4 分钟。

vue-router同路由$router.push不跳转一个简单解决方案

vue-router跳转一般是这么写:

 
goPage(ParentDeptCode2,DeptCode2,hosName,hosId){
this.$router.push({
path:'/ChoiceTime', query:{
DeptCode:ParentDeptCode2, DeptCode2:DeptCode2, hosName:hosName, hosId:hosId } }) }

但是当遇到,需要跳转同页面不同query的情况,上面的方法不起作用。基本页面所有组件都需要刷新,我们只要跳转加载,

$route 作为vue实例的一个响应式属性,和在data中写的属性本质上是一样的,都可以通过this的方式拿到。既然你可以监听data中的属性变化,同样也可以监听 $route 的变化。watch中监听的对象默认回调函数中的参数值就是newVal,oldVal。作为 $route 属性来说当然也就是 to 和 from 的概念了。

watch: {    '$route' (to, from) {        this.$router.go(0);    }},

但是这种情况会出现手机端的白屏情况,而且对应移动端的ios依旧解决不了router.push(传参)跳转页面,参数改变,跳转页面数据不刷新的解决办法 .

所以,我们需要在定义路由界面这样写

app.vue
router/index.js {            name:'ChoiceTime',            path:'/ChoiceTime/:DeptCode/:DeptCode2/:hosName/:hosId',            component: ChoiceTime,            meta: {                title: '选择时间',                keepAlive: false,            }, },  路由将跳转到ChoiceTime.vue页面
goPage(ParentDeptCode2,DeptCode2,hosName,hosId){
this.$router.push({
name:'ChoiceTime', params:{
DeptCode:ParentDeptCode2, DeptCode2:DeptCode2, hosName:hosName, hosId:hosId } }) }
watch: {
'$route' (to, from) {
this.$router.go(0); } },

这样,完美解决了移动端的页面刷新问题,也不会出现白屏的问题.

转载于:https://www.cnblogs.com/anjing940/p/10156049.html

你可能感兴趣的文章
前端笔记-bom
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
迷宫问题
查看>>
【FZSZ2017暑假提高组Day9】猜数游戏(number)
查看>>
练习10-1 使用递归函数计算1到n之和(10 分
查看>>
Oracle MySQL yaSSL 不明细节缓冲区溢出漏洞2
查看>>
Code Snippet
查看>>
zoj 1232 Adventure of Super Mario
查看>>
组合数学 UVa 11538 Chess Queen
查看>>
Redis常用命令
查看>>
[转载]电脑小绝技
查看>>
thinkphp如何实现伪静态
查看>>
BZOJ 1925: [Sdoi2010]地精部落( dp )
查看>>
Week03-面向对象入门
查看>>
一个控制台程序,模拟机器人对话
查看>>
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)
查看>>
我的PHP学习之路
查看>>
【题解】luogu p2340 奶牛会展
查看>>
解决响应式布局下兼容性的问题
查看>>