Vue 2和Vue路由2.

我正在try 根据访问的路由更改应用程序导航栏的 colored颜色 .以下是我所拥有的:

主要的js:

import App from "../components/App.vue"    

const app = new Vue({
  router: Router,
  template: '<app></app>',
  components: { App }
}).$mount('#app')

应用程序.vue:

<template>
    <div>
        <div class="navbar" v-on:class="{ colorNav: 'color-nav' }"></div>
        <router-view></router-view>
    </div>
</template>

<script>
  export default {
    data() {
      return {
        colorNav: false
      }
    }
  }
</script>

使用此设置时,由于colorNav属性为false,color-nav类不会添加到导航栏.按计划工作.

现在用户转到/somepage,它映射到SomePage.vue,在router-view内部渲染.我想要一页.vue更改应用程序上的colorNav属性.vue,以便将color-nav类添加到导航栏.

我该怎么做?

推荐答案

有多种方法可以做到这一点.我自己有不同类型的标题,这取决于我所在的页面.

一个简单的方法是判断您是哪条路由,并根据路由更改此变量.你可以把手表放在$route上,当它变化时,你可以根据当前路由决定colorNav的值.代码将类似于:

<script>
  export default {
    data() {
      return {
        colorNav: false
      }
    }
  watch: {
    '$route' () {
      if (this.$route.path === '/somepage') {
        this. colorNav = true
      }
      else {
        this. colorNav = false
      }  
    }
  }
}
</script>

另一种方法是将该变量存储在大约centralised statevuex个存储器中,并根据需要从每个组件的安装块中更改该变量.

Vue.js相关问答推荐

如何使用 vueJS 上的 ref( ) 函数创建二维数组定义?

无法在cPanel/SSH上构建 | Laravel + Vue优化

Vuetify 3 - NavBar 组件占据整个视口高度

有没有办法在 Quasar 中为明暗模式创建我自己的 colored颜色 ?

如何在 v-for 指令切换状态下安全地制作包含附加到对象的复选框的列表(W/O 切换列表中的其他复选框)?

Webpack 导入的模块不是函数

云Firestore保存额外的用户数据

PhpStorm 中Expected预期表达式

vue-router的router-link实际刷新?

使用 Vee-Validate 在提交时验证子输入组件

Vue-test-utils:在单个测试中多次使用 $nextTick

将 Vuetify 从 1.5 升级到 2 时,Sass-loader 错误 'options has an unknown property 'indentedSyntax''

如何让 Vue (vue cli 3) 正确处理 GraphQL 文件?

VueJS 通过渲染传递数据

无法访问数据对象的嵌套属性

vuex 是 state.array.push react式的吗?

Vue $refs 对象的类型为 unknown未知

mount() 仅在组件 Vue.js 上运行一次

在 vue js 中的何处以及如何存储 API 端点?

如何在 vue 组件中使用 vuex?