Как определить, используется ли vue-router в текущем экземпляре Vue? - PullRequest
0 голосов
/ 17 октября 2019

Я хочу разработать библиотеку с компонентом vue.js внутри. Этот компонент будет иметь элементы навигации внутри. Я хочу, чтобы он работал с и без Vue Router. В режиме маршрутизатора он должен использовать <router-link>, а если маршрутизатор не используется, он должен возвращать стандартные теги <a>.

<template>
       <div>
            <div v-if="vueRouterIsUsed">
                <router-link v-bind:to="url">Router link</router-link>
            </div>
            <div v-else>
                <a :href="url">No router</a>
            <div>
       </div>
</template>
<script>
    export default{
        props: {
            url: {
                type: String,
            }
        }
    }
</script>
  1. Как определить, используется ли vue-router в текущем экземпляре Vue?
  2. Есть ли лучший способ, если if / else для выполнения от <router-link> до <a> откат, если не установлен роутер?

1 Ответ

1 голос
/ 17 октября 2019

Вы можете проверить в созданной (или смонтированной) ловушке жизненного цикла, что в this.$router, вы можете получить доступ ко всем маршрутам и объекту маршрутизатора, что означает, что вы можете проверить, что вам нужно. Установите переменную isRouter, основываясь на этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...