当前位置:首页 > VUE

vue实现选电影

2026-02-19 19:34:55VUE

Vue 实现电影选择功能

创建 Vue 项目

使用 Vue CLI 创建一个新项目,安装必要依赖。确保项目结构清晰,便于后续开发。

vue create movie-selector
cd movie-selector
npm install axios vue-router

设计数据结构

定义电影数据模型,包含电影名称、类型、评分、海报等信息。使用数组存储电影列表,方便后续筛选和展示。

movies: [
  {
    id: 1,
    title: "肖申克的救赎",
    genre: "剧情",
    rating: 9.7,
    poster: "https://example.com/poster1.jpg"
  },
  {
    id: 2,
    title: "阿甘正传",
    genre: "剧情",
    rating: 9.5,
    poster: "https://example.com/poster2.jpg"
  }
]

实现电影列表展示

创建 MovieList 组件,使用 v-for 指令循环渲染电影卡片。每个卡片显示电影基本信息,并添加选择按钮。

<template>
  <div class="movie-list">
    <div v-for="movie in movies" :key="movie.id" class="movie-card">
      <img :src="movie.poster" :alt="movie.title">
      <h3>{{ movie.title }}</h3>
      <p>类型: {{ movie.genre }}</p>
      <p>评分: {{ movie.rating }}</p>
      <button @click="selectMovie(movie)">选择</button>
    </div>
  </div>
</template>

添加筛选功能

实现按类型、评分等条件筛选电影。使用计算属性动态过滤电影列表,保持响应式更新。

computed: {
  filteredMovies() {
    return this.movies.filter(movie => {
      return (
        movie.genre.includes(this.selectedGenre) &&
        movie.rating >= this.minRating
      )
    })
  }
}

实现选择逻辑

在选择电影时触发事件,更新选中状态或跳转到详情页。使用 Vue Router 管理页面导航。

methods: {
  selectMovie(movie) {
    this.$router.push({ name: 'MovieDetail', params: { id: movie.id } })
  }
}

添加电影详情页

创建 MovieDetail 组件展示选中电影的详细信息。从路由参数获取电影ID,匹配对应数据。

created() {
  const movieId = parseInt(this.$route.params.id)
  this.movie = this.movies.find(m => m.id === movieId)
}

样式优化

使用 CSS 或 UI 框架美化界面,确保响应式布局。添加过渡动画提升用户体验。

.movie-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 20px;
}

.movie-card {
  transition: transform 0.3s;
}

.movie-card:hover {
  transform: scale(1.05);
}

数据持久化

考虑使用 Vuex 管理全局状态,或通过 API 获取真实电影数据。实现本地存储保存用户选择记录。

import axios from 'axios'

async fetchMovies() {
  try {
    const response = await axios.get('https://api.example.com/movies')
    this.movies = response.data
  } catch (error) {
    console.error('获取电影数据失败:', error)
  }
}

测试与部署

编写单元测试验证核心功能,使用 Jest 等测试框架。构建生产版本并部署到服务器或静态托管平台。

vue实现选电影

npm run build

标签: 电影vue
分享给朋友:

相关文章

vue实现下拉刷新组件

vue实现下拉刷新组件

实现下拉刷新组件的核心思路 下拉刷新功能通常通过监听触摸事件、滚动位置和动画效果实现。Vue中可以利用自定义指令或封装组件完成,以下为两种常见实现方式。 基于自定义指令的实现 创建指令监听触摸事件,…

vue实现一个标签选择

vue实现一个标签选择

Vue 标签选择组件实现 基础实现 使用 Vue 的 v-for 和 v-model 指令可以快速实现标签选择功能: <template> <div class="tag-se…

vue权限实现

vue权限实现

Vue 权限实现方案 基于路由的权限控制 通过路由守卫实现权限验证,在路由配置中添加meta字段标记权限要求。在router.beforeEach中检查用户权限与路由要求的匹配情况。 // rout…

vue实现token

vue实现token

Vue 中实现 Token 认证的方法 在 Vue 中实现 Token 认证通常涉及前端与后端的交互,包括 Token 的获取、存储、发送和刷新等操作。以下是具体实现步骤: 获取 Token 用户登…

vue实现pc

vue实现pc

Vue 实现 PC 端应用开发 Vue.js 是一个流行的前端框架,适用于构建 PC 端 Web 应用。以下是关键步骤和最佳实践: 项目初始化 使用 Vue CLI 或 Vite 创建项目:…

vue 实现循环

vue 实现循环

Vue 实现循环的方法 在 Vue 中,可以使用 v-for 指令来实现循环渲染列表数据。以下是几种常见的循环实现方式: 基本数组循环 <template> <ul>…