在Vue中公共组件仅在某些页面显示

本文介绍了如何使用Vue.js的`v-if=$route.meta.keepAlive`属性来控制公共组件在特定页面的显示。通过设置路由元信息`meta`中的`keepAlive`字段,可以决定组件是否被缓存。例如,在`app.js`中,底部组件在`keepAlive`为真时显示,而`router-view`则在`keepAlive`为假时显示。在`router/index.js`中,将`login`页面的`keepAlive`设为`false`以避免显示,而将`home`页面的`keepAlive`设为`true`以保持显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决公共组件仅仅在某些页面显示

方法之一就是

运用 v-if="$route.meta.keepAlive"

例如底部公共组件
写在app.js中`

 <div  v-if="$route.meta.keepAlive">
<div class="footer">
      <h4>版权信息 Copyright © 2021 - 10 - 9
        <br> Someone. All rights reserved.
        <br>Welcome!!!
      </h4>
    </div>
  </div>
<router-view v-if="!$route.meta.keepAlive"></router-view>

(可以在style里面进行定位到底部)

不想显示的login页面,在router/index.js 中

 {
      path: '/login',
      name: 'login',
      component: login,
      meta: {
        keepAlive: false
      }

想展示的home页面

  {
      path: '/home',
      name: 'home',
      component: home,
      meta: {
        keepAlive: ture
      }

### 封装公共组件的方法 在 Vue.js 开发过程中,为了提高代码的重用性和维护性,通常会对一些常用的功能进行封装成公共组件。这些组件可以在多个地方被调用而无需重复编写相同的逻辑。 #### 创建基本结构 按照良好的实践习惯,在项目初始化阶段应该规划好项目的文件夹布局。对于一个典型的 Vue 项目来说,至少会有 `views`、`common` 和 `features` 这三个主要目录[^1]: - **Views**: 存储页面级别的视图组件; - **Common**: 放置那些在整个应用中都会频繁使用的通用型组件,比如头部导航栏(head) 或者页脚(foot); - **Features**: 容纳具有特定业务逻辑的功能模块,像轮播(swiper)、标签栏(tabbar)或是带有分页加载特性的列表(list). #### 编写具体实现 当着手于某个具体的公共组件时,遵循标准的单文件组件(SFC)格式是非常重要的。每一个 `.vue` 文件都应当包含 `<template>`、`<script>` 及 `<style>` 三部分[^4]: ```html <!-- common/components/Head.vue --> <template> <header class="header"> <!-- 头部内容 --> </header> </template> <script> export default { name: 'Header', props: ['title'], } </script> <style scoped> .header { /* 样式 */ } </style> ``` 在此基础上,如果涉及到更复杂的交互行为,则可以通过定义属性(`props`)来接收外部传递的数据;利用计算属性(computed properties)处理内部状态的变化;借助事件(event bus or emit)与其他兄弟姐妹甚至父辈节点通信等等[^2]. 另外值得注意的是,针对某些特殊场景下的需求——例如图表展示——还可以进一步抽象出更高层次的服务层函数或工具类库辅助完成任务。以 ECharts 的集成为例,通过预先设定一套全局适用的基础配置项(base option),再允许局部定制化调整的方式,既保证了一致性又不失灵活性[^3]. 最后提醒一点,随着应用程序规模的增长以及团队协作模式的发展变化,合理运用插槽(slot mechanism)机制赋予使用者更大的自由度去扩展原有设计将是十分必要的考虑因素之一.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值