Vue.js 代码实现航班搜索结果卡片

应用场景

本代码段适用于需要在 Vue.js 应用中展示航班搜索结果的场景。它提供了一个美观且易于使用的界面,允许用户查看和选择可用的航班。

基本功能

此代码段实现了以下基本功能:

  • 展示航班搜索结果列表,包括航班时间、航空公司、行李额和票价
  • 使用标签栏在不同的视图之间切换
  • 使用图标表示航班和航空公司

功能实现步骤及关键代码分析

1. 布局和样式

首先,代码使用 HTML 和 CSS 定义了页面布局和样式。页面包含一个导航栏、航班结果列表和标签栏。

<div class="bg-gray-900 h-screen">
  <div class="flex items-center justify-between px-4 py-6 border-b border-gray-700">
    <van-icon name="arrow-left" size="24" color="#fff" />
    <div class="text-white text-lg font-semibold">Search Flight Result</div>
    <van-icon name="more-o" size="24" color="#fff" />
  </div>
  ...
</div>

2. 航班结果列表

航班结果列表使用 Vue.js 的 v-for 指令遍历航班数据,并为每个航班创建一个卡片。每个卡片包含航班时间、航空公司、行李额和票价等信息。

<div class="flex flex-col space-y-4 px-4 py-4">
  <div class="flex items-center justify-between bg-gray-800 rounded-md p-4">
    <div class="flex items-center space-x-4">
      <div class="w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center">
        <van-icon name="plane" size="20" color="#fff" />
      </div>
      <div class="text-white text-sm">Turkish A.</div>
    </div>
    <div class="text-white text-sm">14:55</div>
    <div class="text-white text-sm">23 Kg / Person</div>
    <div class="text-white text-sm">$479.88</div>
  </div>
  ...
</div>

3. 标签栏

标签栏使用 Vue.js 的 van-tabs 组件实现。它包含三个标签,分别表示主页、搜索和相机。当用户点击标签时,activeTab 响应式变量会更新,从而在不同的视图之间切换。

<van-tabs v-model="activeTab" class="fixed bottom-0 left-0 right-0">
  <van-tab>
    <template #title>
      <van-icon name="home-o" />
    </template>
  </van-tab>
  ...
</van-tabs>

4. 关键代码分析

  • v-for 指令:用于遍历航班数据并创建航班卡片。
  • activeTab 响应式变量:用于在标签栏的视图之间切换。
  • van-icon 组件:用于显示航班和航空公司的图标。

总结与展望

开发经验与收获: 开发此代码段让我深入了解了 Vue.js 中响应式变量和组件的使用。我也学到了如何使用 echarts 库创建交互式图表。

未来拓展与优化: 未来可以对该卡片功能进行以下拓展和优化:

  • 添加航班过滤和排序功能
  • 整合实时航班信息
  • 优化卡片的响应式设计,以适应不同的屏幕尺寸
Login
ECHO recommendation
ScriptEcho.ai

User Annotations

航班搜索结果页