当前位置:首页 > VUE

vue实现电影选择

2026-01-08 17:06:17VUE

Vue实现电影选择功能

使用Vue实现电影选择功能可以通过以下方式完成:

创建Vue实例和数据 在Vue实例中定义电影列表数据,包含电影名称、图片、评分等信息。

new Vue({
  el: '#app',
  data: {
    movies: [
      { id: 1, title: '肖申克的救赎', poster: 'url1', rating: 9.7, selected: false },
      { id: 2, title: '阿甘正传', poster: 'url2', rating: 9.5, selected: false },
      { id: 3, title: '泰坦尼克号', poster: 'url3', rating: 9.4, selected: false }
    ],
    selectedMovie: null
  }
})

实现选择功能 通过v-for指令渲染电影列表,并为每个电影项添加点击事件。

<div id="app">
  <div class="movie-list">
    <div 
      v-for="movie in movies" 
      :key="movie.id"
      @click="selectMovie(movie)"
      :class="{ 'selected': movie.selected }"
    >
      <img :src="movie.poster" :alt="movie.title">
      <h3>{{ movie.title }}</h3>
      <p>评分: {{ movie.rating }}</p>
    </div>
  </div>
  <div v-if="selectedMovie" class="selected-movie">
    <h2>已选择: {{ selectedMovie.title }}</h2>
  </div>
</div>

添加样式 为选中的电影添加特殊样式,提高用户体验。

.movie-list {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.movie-list > div {
  cursor: pointer;
  border: 1px solid #ddd;
  padding: 10px;
  width: 200px;
}

.selected {
  border: 2px solid #42b983;
  background-color: #f5f5f5;
}

.selected-movie {
  margin-top: 20px;
  padding: 15px;
  background-color: #42b983;
  color: white;
}

实现选择逻辑 在methods中添加selectMovie方法,处理电影选择逻辑。

methods: {
  selectMovie(movie) {
    // 重置所有电影的选中状态
    this.movies.forEach(m => m.selected = false);
    // 设置当前电影为选中状态
    movie.selected = true;
    this.selectedMovie = movie;
  }
}

优化体验 可以添加搜索功能,方便用户快速找到想看的电影。

<input v-model="searchQuery" placeholder="搜索电影...">

<div v-for="movie in filteredMovies">
  <!-- 电影项 -->
</div>
computed: {
  filteredMovies() {
    return this.movies.filter(movie => 
      movie.title.toLowerCase().includes(this.searchQuery.toLowerCase())
    );
  }
}

通过以上步骤,可以构建一个基本的电影选择功能,用户可以从列表中选择喜欢的电影,系统会显示用户的选择并提供视觉反馈。

vue实现电影选择

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

相关文章

vue为啥能实现监听

vue为啥能实现监听

Vue 实现监听的原理 Vue 的监听能力主要基于其响应式系统,该系统通过数据劫持和依赖收集实现。当数据变化时,系统能自动触发视图更新或执行回调函数。 核心机制:Object.definePrope…

vue实现简单的弹窗

vue实现简单的弹窗

使用 Vue 实现简单弹窗 组件基础结构 创建一个名为 Modal.vue 的组件文件,包含模板、脚本和样式部分: <template> <div class="modal-…

vue实现a

vue实现a

Vue 实现 A 功能的方法 在 Vue 中实现 A 功能可以通过多种方式,具体取决于 A 功能的具体需求。以下是几种常见的实现方法: 使用 Vue 组件 通过创建自定义组件来实现 A 功能。组件可…

vue实现通知

vue实现通知

Vue 实现通知功能的方法 使用 Vue 实现通知功能可以通过多种方式实现,以下是一些常见的方法: 使用 Vue 的全局事件总线 在 Vue 中可以通过事件总线实现通知功能。创建一个全局事件总线,然…

vue 实现拖动

vue 实现拖动

Vue 实现拖动的几种方法 在Vue中实现拖动功能可以通过多种方式,包括原生HTML5的拖放API、第三方库如vuedraggable等。以下是几种常见的实现方法: 使用HTML5拖放API HTM…

vue实现fullpage

vue实现fullpage

Vue 实现 FullPage 效果 在 Vue 中实现全屏滚动(FullPage)效果可以通过多种方式完成,以下是几种常见的方法: 使用现有库 vue-fullpage.js 安装 vue-fu…