Ionic4+VueJS 汉堡菜单

4
问题:如何为ionic v4 vuejs应用程序创建可滑动的侧边菜单?
我是ionic的新手,一直在尝试将现有的Web应用程序迁移到ionic。遵循适用于vue的ionic4的有限文章上的步骤。我安装了@ionic/core,将CDN添加到索引文件中,并在将Vue挂载之前添加了[/ion/] web compoenets的ignore标志。
目前我遇到了这个错误:Menu: must have a "content" element to listen for drag events on. 我有点不确定要按照哪些步骤进行,因为许多文章都是关于ion v2和v3的,我知道对ui组件进行了一些更改,根据ionic4 beta文档来看我的做法似乎是正确的:
<script lang="ts" src="./Layout.ts"></script>

<template>
    <div class="layoutComponent">
        <ion-page>

            <ion-menu>
                <ion-header>
                    <ion-toolbar color="primary">
                        <ion-title>Menu</ion-title>
                    </ion-toolbar>
                </ion-header>

                <ion-content>

                    <ion-list>
                        <ion-list-header>
                            Navigate
                        </ion-list-header>

                        <ion-item>
                            <router-link :to="{name: 'link 1'}">
                                <ion-label full>
                                    <eg-localizer token="1"></localizer>
                                </ion-label>
                            </router-link>
                        </ion-item>
                        <ion-item>
                            <router-link :to="{ name: 'link2'}">
                                <ion-label full>
                                    <localizer token="2"></localizer>
                                </ion-label>
                            </router-link>
                        </ion-item>
                        <ion-item>
                            <a target="_blank" href="https://foo.com">
                                <ion-label full>
                                    <localizer token="external link 3"></localizer>
                                </ion-label>
                            </a>
                        </ion-item>
                    </ion-list>
                </ion-content>
            </ion-menu>

            <!-- main point of entry for app content -->
            <slot></slot>

        </ion-page>
    </div>
</template>

1
这里有一个示例项目 https://forum.ionicframework.com/t/ionic-4-vue-js-menu-help/141264 - Aaron Saunders
我也尝试了在ionic-team的GitHub示例上所做的更改: https://github.com/ionic-team/ionic/blob/master/core/src/components/menu/test/preview/index.html。错误消失了,但屏幕上看不到菜单。我在检查器和影子DOM中看到了Web组件,但没有任何内容呈现出来。 - user6117854
2个回答

1

关于ionic框架的文档有点不清晰或不完整,但是我成功使菜单工作了:

<template>
  <ion-menu side="start" content-id="menu-content">
    <ion-header>
      <ion-toolbar color="primary">
        <ion-title>Start Menu</ion-title>
      </ion-toolbar>
    </ion-header>
    <ion-content id="menu-content">
      <ion-list lines="full">
        <ion-item v-for="item in items" :key="item.name">
          <ion-icon :name="item.icon" slot="start"></ion-icon>
          <ion-label>{{ item.name }}</ion-label>
        </ion-item>
      </ion-list>
    </ion-content>
  </ion-menu>
</template>

<script>
export default {
  data () {
    return {
      items: [
        { name: 'Home', icon: 'home', href: 'home' },
        { name: 'About', icon: 'information-circle', href: 'about' },
        { name: 'Articles', icon: 'list-box', href: 'articles' },
        { name: 'Log out', icon: 'logout', href: 'logout' }
      ]
    }
  }
}
</script>

关键在这里:

<ion-menu side="start" content-id="menu-content">

并且在这里

<ion-content id="menu-content">

希望这能对任何人有所帮助。

完美的人。谢谢。 - user13134426

0
对于 Ionic 6 + Vue js 3.0,请确保您的组件 <ion-router-outlet /><ion-content> 中,并且 ion-content 应该具有您在菜单的 content-id 参数中指定的 id。
  <ion-content id="main">
    <ion-router-outlet />
    </ion-content>

任何有关此的文档链接。 - bjacob596

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接