Vue之watch路由跳转

可能应用的场景:比如我当前是个介绍新闻资讯的页面,它的子路由是点击某条新闻跳转到的详情组件,实现思路倒很简单:

主路由的新闻列表写在一个div里,并给该div一个v-if=”news”,当监测到路由处于新闻资讯的主路由就让news等于true,即显示。如果不在主路由(比如跳转去子路由详情页面)则为false,如下:
router.js:

{
      path: '/new',
      name: 'new',
      component: news,
      children: [
        {
          path: '/new/newDetail',
          name: 'newDetail',
          component: newsDetail
        }
      ]
    }

新闻资讯主路由的组件template:

<template>
  <div class="wrapper">
    <div class="news" v-if="news">
        这里是新闻列表
    </div>
    <router-view></router-view> <-- 这个容器是显示跳转后的详情组件 -->
  </div>
</template>

监控路由的js如下:

export default {
  created () {// 每次路由变化dom重新加载都会执行该方法
    this.historyWatch();
  },
  watch: {
      // 路由若是发生变化,会再次执行该方法
      '$route': 'historyWatch';
    },
    methods: {
      historyWatch () {
        this.news = (this.$route.path === '/new' ? 1 : 0);
      }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值