vue.js - 如何仅在某些 Vue.js 组件上显示导航栏元素?

标签 vue.js vue-component vue-router

我在一个由 3 部分组成的组件中使用 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 更改为:

v-if="this.$route.name === 'whatever-your-route-name-is'" // 'landing' according to your comment

关于vue.js - 如何仅在某些 Vue.js 组件上显示导航栏元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52406230/

相关文章:

vue.js - 如何使用axios从vuex中的API获取数据?

javascript - Vue.js - 如何通过属性为组件设置多个值(数组)?

javascript - 将数据从一个组件传递到另一个组件

vuejs2 - vue 路由器 : go up one (variable) level

vue.js - 如何访问其中包含连字符的 URL 查询 vue js

javascript - Vue 2.0 实例没有听到 vue-router 组件发出的事件

javascript - 如何在vuex的actions.js中使用router?

npm - 如何在 webpack 中使用快捷方式路径 "@"?

javascript - vue 组件中无法包含 Highcharts

javascript - 如何求和并推送到 Vue 中的匹配对象