在包含在 v-if 和 v-else 上的 TheHeader.vue 组件上创建并调用了一个 SideMenu.vue,该组件也由按钮绑定 v-on:click 以在屏幕尺寸为 640px 至 768px 时切换侧边菜单可见性。
<button v-on:click="toggleNav">
<font-awesome-icon :icon="['fas', 'bars']" size="xl" class="inline-block align-middle" />
</button>
<div class="hidden lg:block" v-if="!mobileNav">
<SideMenu />
</div>
<div class="lg:hidden" v-else>
<SideMenu />
</div>
<script>
export default {
data() {
return {
mobileNav: false,
},
},
methods: {
toggleNav() {
this.mobileNav = !this.mobileNav,
},
},
};
</script>
我在想的是在 sample.vue 上注入/插入 v-if div 标签放置在 pages 文件夹中,因为我创建了一个 flex-col 及其基本大小,因为侧边菜单在大屏幕上的位置有样本数据显示。
<template>
<div class="flex flex-col bg-zinc-50 lg:flex-row lg:bg-zinc-300">
<!-- Where i want to display the side menu -->
<section class="font sans lg:my-4 lg:ml-[1%] lg:mr-[2%] lg:bg-stone-50 lg:basis-10/12">
<!-- sample section content -->
</section>
</div
</template>
我已经使用 v-show、vue 绑定、provide() 和 inject() 进行了大量修改,但都失败了。还有一个搜索我读到关于尝试将模板放在模板中是行不通的,我也尝试过使用 v-slot。这就是我需要的样子。