微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bootstrap-vue-从Vue组件修改导航栏?

如何解决Bootstrap-vue-从Vue组件修改导航栏?

我有一个Vue Bootstrap SPA,其结构如下:

  • 布局
    • 导航栏
    • 面包屑
    • 路由器视图
  • 组件

我希望我的component为父级导航栏注入一个菜单。例如:

export default {
    name: 'Component',data() {
       return {
           menu: [
               'Item': {
                   href: '#'
               }
           ]
       }
    },mounted() {
       parent.menu.addItem(this.menu)
    }
}

有可能这样做吗?

以下是顶部布局:

<template>
  <div>
    <navbar :menu="menu"></navbar>
    <router-view></router-view>
  </div>
</template>

<script>
import NavBar from './navbar'

export default {
  components: {
    navbar: NavBar
  },data() {
    return {
      menu: [
        {
          text: "Foo",href: "/foo",},{
          text: "Bar",href: "#",],};
  },};
</script>

解决方法

您可以向父组件发出事件,如:

    data() {
       return {
           menu: [
                 {
                   href: '#'
               }
           ]
       }
    },mounted() {
       this.$emit('emit-menu',this.menu)
    }

父级:

<template>

<navbar :menu="menu" @emit-menu="addItem"></navbar> 

    <router-view></router-view>
  </div>
</template>

<script>
import NavBar from './navbar'

export default {
  components: {
    navbar: NavBar
  },methods:{
   addItem(menu){
       this.menu=[..this.menu,...menu]
  }
 },data() {
    return {
      menu: [
        {
          text: "Foo",href: "/foo",},{
          text: "Bar",href: "#",],};
  },};
</script>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。