当前位置:首页 > VUE

vue实现影片列表

2026-03-29 07:24:46VUE

Vue 实现影片列表

数据准备

创建一个包含影片信息的数组,每个影片对象包含标题、封面、评分等属性。数据可以存储在组件的 data 属性中或通过 API 获取。

data() {
  return {
    movies: [
      { id: 1, title: '影片1', cover: 'url1', rating: 8.5 },
      { id: 2, title: '影片2', cover: 'url2', rating: 7.3 },
      { id: 3, title: '影片3', cover: 'url3', rating: 9.1 }
    ]
  }
}

列表渲染

使用 v-for 指令遍历影片数组,动态生成列表项。每个列表项可以包含影片封面、标题和评分等信息。

<div class="movie-list">
  <div v-for="movie in movies" :key="movie.id" class="movie-item">
    <img :src="movie.cover" :alt="movie.title" class="movie-cover">
    <h3>{{ movie.title }}</h3>
    <span class="rating">{{ movie.rating }}</span>
  </div>
</div>

样式设计

为影片列表和列表项添加 CSS 样式,确保布局美观。可以使用 Flexbox 或 Grid 实现响应式布局。

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

.movie-item {
  border: 1px solid #ddd;
  padding: 10px;
  text-align: center;
}

.movie-cover {
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.rating {
  color: gold;
  font-weight: bold;
}

交互功能

为影片列表添加交互功能,例如点击影片跳转到详情页或悬停显示更多信息。使用 Vue 的事件绑定实现。

<div v-for="movie in movies" :key="movie.id" class="movie-item" @click="goToDetail(movie.id)">
  <!-- 列表项内容 -->
</div>
methods: {
  goToDetail(id) {
    this.$router.push(`/movie/${id}`);
  }
}

分页加载

如果影片数据较多,可以实现分页加载功能。通过计算属性或 API 分页参数控制当前显示的影片列表。

data() {
  return {
    currentPage: 1,
    pageSize: 10
  }
},
computed: {
  paginatedMovies() {
    const start = (this.currentPage - 1) * this.pageSize;
    return this.movies.slice(start, start + this.pageSize);
  }
}

搜索与筛选

添加搜索框和筛选条件,允许用户按标题、评分等筛选影片。使用计算属性动态过滤影片列表。

vue实现影片列表

<input v-model="searchQuery" placeholder="搜索影片">
<select v-model="ratingFilter">
  <option value="">全部</option>
  <option value="9">9分以上</option>
</select>
computed: {
  filteredMovies() {
    return this.movies.filter(movie => {
      const matchesSearch = movie.title.includes(this.searchQuery);
      const matchesRating = !this.ratingFilter || movie.rating >= this.ratingFilter;
      return matchesSearch && matchesRating;
    });
  }
}

通过以上步骤,可以实现一个功能完善、交互友好的影片列表页面。根据实际需求,可以进一步扩展功能,如收藏、排序等。

标签: 影片列表
分享给朋友:

相关文章

vue实现列表分页

vue实现列表分页

Vue 列表分页实现方法 基础分页实现 安装依赖(如使用第三方库) npm install vue-paginate 模板部分示例 <template> <div>…

weex  vue 实现列表

weex vue 实现列表

weex + Vue 实现列表的方法 使用<list>和<cell>组件 在weex中,列表通常通过<list>和<cell>组件实现。<list…

vue实现目录列表

vue实现目录列表

实现目录列表的基本思路 在Vue中实现目录列表通常涉及动态渲染嵌套结构的数据,结合递归组件或v-for循环处理层级关系。以下是两种常见实现方式: 方法一:使用递归组件 递归组件适合处理未知深度的嵌套…

vue实现列表菜单

vue实现列表菜单

实现列表菜单的基本结构 在 Vue 中实现列表菜单通常使用 v-for 指令动态渲染菜单项。定义一个数组存储菜单数据,通过 v-for 遍历数组生成菜单项。 <template> &…

vue实现树形列表

vue实现树形列表

Vue 实现树形列表的方法 递归组件实现 使用递归组件是最常见的方式,适合处理嵌套层级不确定的数据结构。 数据结构示例 data() { return { treeData: […

vue 实现列表更换

vue 实现列表更换

实现列表更换的方法 在Vue中实现列表更换通常涉及数据绑定和响应式更新。以下是几种常见的方法: 使用v-for指令绑定数组 通过修改数据源数组实现列表内容的动态更换。Vue的响应式系统会自动更新DO…