vue 一个简单的项目 之一 首页 step7

本文详细介绍了一个周末游组件的创建过程,从复制热销组件代码开始,逐步修改内容与样式,最终实现了一个展示周末旅游推荐的Vue组件。

上一篇,我们实现了热销组件区域,本篇将实现 周末游组件。

在 home/components 中创建一个新文件 Weekend.vue

这个组件,大概的样子,如下。

  

它与热销组件,十分相似,偷个懒,先把热销组件的代码拷到Weekend.vue 中,改改内容与引用。

<template>
  <div>
    <div class="title">周末游</div>
    <ul>
      <li class="item border-bottom" v-for="item of recommendList" :key="item.id">
        <div class="item-img-wrapper">
          <img class="item-img" :src='item.imgUrl' />
        </div>
        <div class="item-info">
          <p class="item-title">{{item.title}}</p>
          <p class="item-desc">{{item.desc}}</p>
        </div>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  name: 'HomeWeekend',
  data: function () {
    return {
      recommendList: [{
        id: '0001',
        imgUrl: 'https://dimg07.c-ctrip.com/images/w30i0o000000enulf6C20.jpg_Z_800_600.jpg',
        title: '地名1',
        desc: '地名的一个简单介绍sdkbksksjbksbksdjhskksjbkbvdkbk啊啊啊啊啊啊啊啊'
      }, {
        id: '0002',
        imgUrl: 'https://dimg07.c-ctrip.com/images/w30i0o000000enulf6C20.jpg_Z_800_600.jpg',
        title: '地名2',
        desc: '地名的一个简单介绍sdkbksksjbksbksdjhskksjbkbvdkbk啊啊啊啊啊啊啊啊'
      }]
    }
  }
}
</script>

<style lang="stylus" scoped>
  @import '~styles/mixins.styl'
  .title
    margin-top: .2rem
    line-height: .8rem
    background: #eee
    text-indent: .2rem
  .item-img-wrapper
    overflow: hidden
    height: 0
    padding-bottom: 60%
    .item-img
      width: 100%
  .item-info
    padding: .1rem
    .item-title
      line-height: .54rem
      font-size: .32rem
      ellipsis()
    .item-desc
      line-height: .4rem
      color: #ccc
      ellipsis()
</style>

完成啦。可以提交合并分支啦。

### el-step 组件第一个节点未高亮显示的原因及解决方案 el-step 是 Element UI 框架中的一个组件,用于实现步骤条功能。当用户遇到 el-step 组件的第一个节点未高亮显示的问题时,通常与以下几个因素有关: #### 1. 当前步骤索引设置不正确 el-steps 和 el-step 的核心属性之一是 `active` 属性,它决定了当前激活的步骤索引。如果 `active` 属性值设置错误,可能导致第一个节点未被正确高亮。 ```vue <el-steps :active="activeIndex"> <el-step title="步骤一"></el-step> <el-step title="步骤二"></el-step> <el-step title="步骤三"></el-step> </el-steps> ``` 确保在 Vue 数据中正确设置了 `activeIndex`,例如: ```javascript data() { return { activeIndex: 0 // 表示第一个步骤被激活 }; } ``` 如果未正确设置 `activeIndex` 或其初始值大于 0,则会导致第一个节点未高亮[^4]。 #### 2. 样式覆盖问题 有时候,项目的全局样式或第三方库可能对 el-step 的默认样式进行了覆盖,导致即使步骤激活,颜色也未正常显示。可以通过检查以下 CSS 属性来确认是否存在样式冲突: - `.el-step__title.is-process`:表示当前激活步骤的标题样式。 - `.el-step__title.is-finish`:表示已完成步骤的标题样式。 - `.el-step__title.is-wait`:表示未完成步骤的标题样式。 如果发现样式被覆盖,可以尝试通过自定义样式修复: ```css .el-step__title.is-process { color: #409EFF !important; /* 设置激活步骤的颜色 */ } ``` #### 3. 数据绑定问题 如果步骤的状态依赖于动态数据(如后端返回的数据),需要确保数据格式正确且及时更新到视图。例如,某些情况下可能需要手动触发 `this.$forceUpdate()` 来强制刷新视图[^5]。 #### 4. 配置属性缺失 el-step 提供了多个配置属性,如 `status` 和 `process-status`,用于更精细地控制每个步骤的状态。如果未正确配置这些属性,可能会导致状态显示异常。例如: ```vue <el-step title="步骤一" :status="stepStatus"></el-step> ``` 确保 `stepStatus` 的值为正确的状态值(如 `'wait'`, `'process'`, `'finish'`, `'error'`)。 --- ### 示例代码 以下是一个完整的示例,展示如何正确配置 el-step 并解决第一个节点未高亮的问题: ```vue <template> <el-steps :active="activeIndex" finish-status="success"> <el-step title="步骤一" description="描述信息"></el-step> <el-step title="步骤二" description="描述信息"></el-step> <el-step title="步骤三" description="描述信息"></el-step> </el-steps> </template> <script> export default { data() { return { activeIndex: 0 // 确保初始化为 0 }; } }; </script> <style> /* 确保样式未被覆盖 */ .el-step__title.is-process { color: #409EFF !important; } </style> ``` --- ### 总结 第一个节点未高亮显示的主要原因包括 `active` 属性设置错误、样式覆盖、数据绑定问题以及配置属性缺失。通过检查上述几个方面并进行相应调整,可以有效解决问题。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值