javascript - 单击项目后关闭抽屉导航?

标签 javascript vue.js vuetify.js

我正在研究一个大学项目,并尝试实现一项功能,允许在我单击其中的一个项目时关闭抽屉导航。但是,我不确定如何处理。

    <template>
  <div id="navigation-mobile">
    <Searchbar class="search"/>
    <ul v-for="item in tabs"
            :key="item.path"
            active-class
            @click="$router.push(item.path)"
    >
      <li>{{item.name}}</li>
    </ul>
    <div class="mobile-footer">
      <ul>
        <li>About us</li>
        <li>Contact us</li>
      </ul>
    </div>
  </div>
</template>

这是我在 App.vue 中的内容,其中包含抽屉导航的一部分:

<template>
  <v-app id="app">
    <NavBarMobile v-if="mobileView"/>
    <div class="content" :class="{'open': showNav}">
      <div style="height:20px"></div>
      <div id="navigation-icon" v-if="mobileView"
      @click="showNav = !showNav">
        <v-icon medium dark>menu</v-icon>
      </div>
      <NavBar v-if="!mobileView"></NavBar>
      <v-content class="pa-0" transition="slide-x-transition"></v-content>
      <Footer v-if="!mobileView"></Footer>
      <router-view></router-view>
    </div>
  </v-app>
</template>

到目前为止,这是我的代码。我想使用@click,我认为这是最有效的方法,但我不知道是否可以,因为我已经在使用它了。我不太擅长编程。有什么建议吗?

这是代码笔:https://codesandbox.io/s/gameshelf-0209-jack-forked-zobe5

您可以在 NavBarMobile.vue 中找到该组件

提前感谢您花时间阅读这篇文章!

最佳答案

您可以通过多种方式实现这一目标。在我看来,最简单的方法就是从 App.vue 中简单地“观察”$route 对象:

export default {
  // ...
  watch: {
    $route(to, from) {
      this.showNav = false
    }
  }
}

Vue 实例上的 watch 属性包含监视同名变量变化的函数。更改后,该函数将运行。

有关观察者和计算属性的更多信息:https://v2.vuejs.org/v2/guide/computed.html

编辑:关于对路由器变化作出 react 的一些额外信息:https://router.vuejs.org/guide/essentials/dynamic-matching.html#reacting-to-params-changes

关于javascript - 单击项目后关闭抽屉导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63723621/

相关文章:

vue.js - 计算属性需要等待异步数据

javascript - 在 Vuetify.js 中更改输入文件组件的颜色和图标

javascript - v-list-group 子组不会根据 group 属性中定义的路径打开

vue.js - Vuetify 按钮颜色不起作用

vue.js - Vuetify 问题与 v-menu

javascript - div 单击 anchor 标记下的 jquery 不起作用

javascript - 显示和播放在输入 JavaScript 中选择的音频文件

vue.js - 如何从 Vuetify 进度条计算中删除空值

javascript - setTimeout 与揭示模块模式

c# - 在 ASP.net Ajax 中禁用更新进度按钮