当前位置:首页 > VUE

vue实现页头页脚

2026-02-22 23:23:14VUE

实现页头和页脚的基本结构

在Vue项目中,页头和页脚通常作为全局组件存在,放置在App.vue或通过路由布局统一管理。以下是一个基础实现示例:

目录结构建议

src/
├── components/
│   ├── Header.vue
│   └── Footer.vue
├── App.vue

Header.vue 示例

<template>
  <header class="app-header">
    <nav>
      <router-link to="/">Home</router-link>
      <router-link to="/about">About</router-link>
    </nav>
  </header>
</template>

<script>
export default {
  name: 'AppHeader'
}
</script>

<style scoped>
.app-header {
  background-color: #333;
  padding: 1rem;
  color: white;
}
</style>

Footer.vue 示例

<template>
  <footer class="app-footer">
    <p>&copy; 2023 Your Company</p>
  </footer>
</template>

<script>
export default {
  name: 'AppFooter'
}
</script>

<style scoped>
.app-footer {
  background-color: #f5f5f5;
  padding: 1rem;
  text-align: center;
}
</style>

全局注册组件方式

App.vue中引入并固定显示页头页脚:

<template>
  <div id="app">
    <AppHeader />
    <router-view />
    <AppFooter />
  </div>
</template>

<script>
import AppHeader from '@/components/Header.vue'
import AppFooter from '@/components/Footer.vue'

export default {
  components: {
    AppHeader,
    AppFooter
  }
}
</script>

动态页头页脚控制

如果需要根据不同页面隐藏页脚(如登录页),可通过路由元信息控制:

router/index.js 配置

{
  path: '/login',
  component: Login,
  meta: { hideFooter: true }
}

App.vue 修改

<template>
  <div id="app">
    <AppHeader />
    <router-view />
    <AppFooter v-if="!$route.meta.hideFooter" />
  </div>
</template>

使用插槽增强灵活性

在需要自定义内容的场景,可以使用插槽:

Header.vue 修改

<template>
  <header>
    <slot name="left"></slot>
    <slot></slot> <!-- 默认插槽 -->
    <slot name="right"></slot>
  </header>
</template>

使用示例

<AppHeader>
  <template #left>
    <button @click="toggleSidebar">Menu</button>
  </template>
  <h1>Page Title</h1>
</AppHeader>

响应式设计建议

通过CSS媒体查询适配不同屏幕尺寸:

/* Header.vue 样式补充 */
@media (max-width: 768px) {
  .app-header nav {
    flex-direction: column;
  }
}

状态管理集成

当需要全局控制页头状态(如用户登录信息),可结合Vuex:

// store/modules/app.js
export default {
  state: {
    headerTitle: 'Default Title'
  },
  mutations: {
    SET_HEADER_TITLE(state, title) {
      state.headerTitle = title
    }
  }
}

Header.vue 调用

vue实现页头页脚

<template>
  <header>
    <h1>{{ headerTitle }}</h1>
  </header>
</template>

<script>
import { mapState } from 'vuex'

export default {
  computed: {
    ...mapState(['headerTitle'])
  }
}
</script>

标签: vue页头页脚
分享给朋友:

相关文章

vue调用接口实现退出

vue调用接口实现退出

实现Vue退出功能的步骤 在Vue中调用接口实现退出功能通常需要与后端API交互,以下是实现方法: 前端实现 创建退出方法,调用后端API接口: methods: { logout() {…

vue实现语音

vue实现语音

Vue 实现语音功能的方法 使用 Web Speech API Vue 可以结合 Web Speech API 实现语音识别和合成功能。Web Speech API 包含 SpeechRecognit…

vue实现pie

vue实现pie

Vue 实现饼图 在 Vue 中实现饼图通常可以通过第三方图表库(如 ECharts、Chart.js 或 Highcharts)来完成。以下是使用 ECharts 和 Chart.js 的两种常见方…

jquery实现vue

jquery实现vue

jQuery 和 Vue.js 是两种不同理念的前端工具,jQuery 以 DOM 操作和事件驱动为核心,而 Vue.js 是数据驱动的现代化框架。如果想用 jQuery 实现类似 Vue 的功能(如…

vue实现driver

vue实现driver

Vue 实现 Driver.js 引导功能 Driver.js 是一个轻量级的 JavaScript 库,用于在网页上创建引导式导览。以下是在 Vue 项目中集成 Driver.js 的详细方法:…

vue实现ssr

vue实现ssr

Vue 实现 SSR(服务端渲染) Vue 的服务端渲染(SSR)允许在服务器端生成完整的 HTML 内容,再发送到客户端,提升首屏加载速度和 SEO 友好性。以下是实现 Vue SSR 的关键步骤和…