vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法


Posted in Javascript onNovember 05, 2019

作为vue的初用者,你可能会像我一样遇到一个问题,对跳转组件是,我们想通过参数不同,调用不同的方法。

例如:

app.vue

<ul>
      <li class="navList" v-for="index in goods" :key="index.name">
       <router-link :to="{path:index.link,query:{type:index.name}}" >
        {{index.name}}
       </router-link>
      </li>
   </ul>

app…vue中的data数据:

goods:[
  {name:'女装',link:'goods'},
  {name:'男装',link:'goods'},
  ]

在goods.vue中接受数据

mounted(){
  this.stri=this.$route.query.type;
 }

当我循环输出这些链接,每个链接的地址都是一样的。参数不一样,当我们点击我们的按钮时

vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法

我们只会看到导航栏中的参数在变化,然而我们页面中的数并没有变化。这是为什么呢?

相信很多朋友也已经知道了,这是因为跳转同一个组件,这个组件在第一次,会执行组件的生命周期中的步骤,但是第二次再跳转该组件的时候,组件会被重用,所以不会再执行生命周期中的某些过程,同样mount也不会执行,也就是说,不会执行第二次赋值。

那我们应该怎么获取值呢?

这里有一个方法:

goods.vue

beforeRouteUpdate(to,from,next){
  this.stri=to.query.type;
  next();
 }

beforeRouteUpdate的作用就是监听在当前路由改变,但是该组件被复用时调用

这就是我们所需要的东西了。路由的地址变化了,组件也被复用了。

同样的我能还可以使用另一种监听路由变化的方法:

watch:{
  '$route'(to,from){
   this.stri=to.query.type
  }
 },

这个方法,和上面的beforeRouteUpdate起到一样的效果。

如果你遇到的问题,和我所遇到的一样,那么恭喜你,你也解决了这个问题。

以上这篇vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js实现一个省市区三级联动选择框代码分享
Mar 06 Javascript
setTimeout()与setInterval()方法区别介绍
Dec 24 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
Nov 26 Javascript
使用pjax实现无刷新更改页面url
Feb 05 Javascript
在for循环中length值是否需要缓存
Jul 27 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
Feb 22 Javascript
jQuery实现点击水纹波动动画
Apr 10 Javascript
vue中渐进过渡效果实现
Oct 27 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
Nov 03 Javascript
js canvas实现简单的图像扩散效果
Jun 28 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
Apr 24 Javascript
javascript函数式编程基础
Sep 15 Javascript
vue Tab切换以及缓存页面处理的几种方式
Nov 05 #Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
Nov 05 #Javascript
vue 解决路由只变化参数页面组件不更新问题
Nov 05 #Javascript
vue 实现路由跳转时更改页面title
Nov 05 #Javascript
Node.js开发之套接字(socket)编程入门示例
Nov 05 #Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
Nov 05 #Javascript
node.js域名解析实现方法详解
Nov 05 #Javascript
You might like
收藏的PHP常用函数 推荐收藏保存
2010/02/21 PHP
php发送post请求的三种方法
2014/02/11 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
javascript框架设计读书笔记之字符串的扩展和修复
2014/12/02 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
Javascript实现鼠标框选操作  不是点击选取
2016/04/14 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
2017/09/28 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
微信小程序解析富文本过程详解
2019/07/13 Javascript
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
深入解析Python中的变量和赋值运算符
2015/10/12 Python
Python遍历pandas数据方法总结
2018/02/09 Python
Numpy之random函数使用学习
2019/01/29 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
使用CSS3的appearance属性改变任何元素的浏览器默认风格
2012/12/24 HTML / CSS
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
杭州联环马网络笔试题面试题
2013/08/04 面试题
数学专业推荐信范文
2013/11/21 职场文书
2014年党员整改措施范文
2014/09/21 职场文书
罚款通知怎么写
2015/04/22 职场文书