如何从winthin组件访问路由器

时间:2017-07-26 17:09:15

标签: vue.js vue-router

我想在请求/url/confirm/时显示模式。

这是迄今为止所做的:

// footer component
import Modal from '../Modal/Modal';

export default {
    components: {Modal,},
    data() {
        return {
            showModal: false,
        };
    },

    mounted() {
        if (window.location.href.match('/confirm/')) {
             this.showModal = true;
        }
    },
};


// my main js
import MyFooter from './components/footer/MyFooter;
import router from './router';

new Vue({
    el: '#app',
    router,

    components: {MyFooter, /* other components too */}
});

我结合这个https://router.vuejs.org/en/essentials/dynamic-matching.html#reacting-to-params-changes来涵盖所有用例?

这有效,但似乎不是一种做事的vue方式,特别是我在两个不同的文件中做同样的事情。

如何在vue中检测名称为/confirm/的{​​{1}}路由,以便在我的组件页脚中显示模式?

1 个答案:

答案 0 :(得分:2)

使用the route object(内部组件可用this.$route):

if (this.$route.name == 'confirm') {
  this.showModal = true;
}