您的位置:首页 > 产品设计 > UI/UE

Vue之watch路由跳转

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

主路由的新闻列表写在一个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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: