可以使用路由的参数来解决这个问题。在菜单组件中,可以在点击菜单时,将当前路由的参数传递给菜单组件,在菜单组件中根据参数来设置当前菜单的状态。

例如,在路由中定义一个参数menu,表示当前选中的菜单,然后在菜单组件中根据路由参数来设置当前菜单的状态:

// 路由配置
const routes = [
  { path: '/page1', component: Page1, meta: {menu: 'page1'} },
  { path: '/page2', component: Page2, meta: {menu: 'page2'} },
]

// 菜单组件
<template>
  <div>
    <div :class="{active: menu==='page1'}" @click="goPage1">Page 1</div>
    <div :class="{active: menu==='page2'}" @click="goPage2">Page 2</div>
  </div>
</template>

<script>
export default {
  props: ['menu'], // 接收路由参数
  methods: {
    goPage1() {
      this.$router.push({ path: '/page1', query: { menu: 'page1' }})
    },
    goPage2() {
      this.$router.push({ path: '/page2', query: { menu: 'page2' }})
    }
  }
}
</script>

在路由中使用meta属性来定义菜单,然后在菜单组件中根据路由参数来设置当前菜单的状态。当点击菜单时,使用$router.push方法来跳转路由,并传递菜单参数。在菜单组件中,使用接收到的菜单参数来设置当前菜单的状态。这样就可以在不同的页面中使用同一个菜单组件,并保持菜单状态的一致性了

vue在两个页面中使用了同一个菜单组件在通过菜单跳转的时候并没有继承我点击的状态该怎么解决不能使用vuex

原文地址: http://www.cveoy.top/t/topic/eo7w 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录