前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue使用watch 观察路由变化,重新获取内容

vue使用watch 观察路由变化,重新获取内容

作者头像
挥刀北上
发布2019-08-06 16:24:44
2.7K0
发布2019-08-06 16:24:44
举报
文章被收录于专栏:Node.js开发

在用Vue开发的过程中总会遇到这样或者那样的坑。vue的路由发生变化分两种情况,一种是pathname变化(或是hash变化),第二种是参数变化,第一种发生变化时,组件会重新加载,各个生命周期都会执行。

但是如果参数发生变化,组件是无法感知的,这里需要用到watch方法监听$route,从而根据路由后面的参数不同做出不同的操作。

比如实现如下功能:

点击不用的链接,路由的参数发生变化,页面加载相应的内容。

代码如下:

代码语言:javascript
复制
<template>
    <ul>
        <li v-for="item in list" :key="item.id">
            <span>{{item.title}}</span>
        </li>
    </ul>
</template>
<script>
export default {
  data() {
    return {
      list: [],
      tab: this.$route.query.tab
    };
  },
  created() {
    this.getData(this.tab);
  },
  methods: {
    getData(arg) {  
      this.axios
        .get("https://cnodejs.org/api/v1/topics", { params: { tab: arg } })
        .then(data => {
          this.list = data.data.data;
        });
    }
  },
  watch: {
    $route() {
      this.getData(this.$route.query.tab);
    }
  }
};
</script>
<style>

</style>

主要代码就是这一行:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 nodejs全栈开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档