Я использую приложение Vue.js с vue-router в компоненте из трех частей:
App.vue:
<template>
<div id = "app">
<head>
</head>
<NavbarComp/>
<div>
<div class = "middle">
<router-view/>
</div>
</div>
<FooterComp/>
</div>
</template>
<NavbarComp/> содержит кнопку входа в систему, которую я бы хотел, чтобы она отображалась только на целевой странице:
<template>
<div>
<nav>
<router-link to = "/" >
<h3>My Shining app </h3>
</router-link>
<router-link to = "/login">
<button v-if = "section='landing'"> Login</button>
</router-link>
</nav>
</div>
</template>
Я попытался определить section в магазине и определить секцию как вычисляемое свойство для каждого компонента:
section () {
this.$store.section = 'login';
}
но не удалось. Так что цените ваши подсказки.
Это работает. но на самом деле это должен быть v-if = "this.$route.name === 'landing'". Пожалуйста, ответьте, и я приму. Спасибо!
Рад помочь :)





Измените v-if на кнопке, чтобы он был:
v-if = "this.$route.name === 'whatever-your-route-name-is'" // 'landing' according to your comment
Попробуйте сделать
v-if = "this.$route.name === 'login-route-name'"