当前位置:首页 > VUE

vue实现影片列表

2026-02-17 08:00:09VUE

Vue 实现影片列表

使用 Vue 实现影片列表可以通过多种方式完成,以下是几种常见的方法:

使用 v-for 渲染列表

通过 v-for 指令动态渲染影片列表数据,结合 :key 确保高效更新。

<template>
  <div>
    <h3>影片列表</h3>
    <ul>
      <li v-for="movie in movies" :key="movie.id">
        {{ movie.title }} - {{ movie.year }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      movies: [
        { id: 1, title: "影片1", year: 2020 },
        { id: 2, title: "影片2", year: 2021 },
        { id: 3, title: "影片3", year: 2022 }
      ]
    };
  }
};
</script>

使用组件拆分

将影片项封装为独立组件,提高复用性和可维护性。

<template>
  <div>
    <h3>影片列表</h3>
    <MovieItem v-for="movie in movies" :key="movie.id" :movie="movie" />
  </div>
</template>

<script>
import MovieItem from "./MovieItem.vue";

export default {
  components: { MovieItem },
  data() {
    return {
      movies: [
        { id: 1, title: "影片1", year: 2020 },
        { id: 2, title: "影片2", year: 2021 },
        { id: 3, title: "影片3", year: 2022 }
      ]
    };
  }
};
</script>

从 API 获取数据

通过异步请求获取影片列表数据,通常使用 axiosfetch

<template>
  <div>
    <h3>影片列表</h3>
    <ul v-if="movies.length">
      <li v-for="movie in movies" :key="movie.id">
        {{ movie.title }} - {{ movie.year }}
      </li>
    </ul>
    <p v-else>加载中...</p>
  </div>
</template>

<script>
import axios from "axios";

export default {
  data() {
    return {
      movies: []
    };
  },
  async created() {
    try {
      const response = await axios.get("https://api.example.com/movies");
      this.movies = response.data;
    } catch (error) {
      console.error("获取影片列表失败:", error);
    }
  }
};
</script>

添加搜索和筛选功能

通过计算属性实现影片列表的动态筛选。

<template>
  <div>
    <input v-model="searchQuery" placeholder="搜索影片" />
    <ul>
      <li v-for="movie in filteredMovies" :key="movie.id">
        {{ movie.title }} - {{ movie.year }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      searchQuery: "",
      movies: [
        { id: 1, title: "影片1", year: 2020 },
        { id: 2, title: "影片2", year: 2021 },
        { id: 3, title: "影片3", year: 2022 }
      ]
    };
  },
  computed: {
    filteredMovies() {
      return this.movies.filter(movie =>
        movie.title.toLowerCase().includes(this.searchQuery.toLowerCase())
      );
    }
  }
};
</script>

使用 Vuex 管理状态

在大型应用中,通过 Vuex 集中管理影片列表数据。

vue实现影片列表

<template>
  <div>
    <h3>影片列表</h3>
    <ul>
      <li v-for="movie in movies" :key="movie.id">
        {{ movie.title }} - {{ movie.year }}
      </li>
    </ul>
  </div>
</template>

<script>
import { mapState } from "vuex";

export default {
  computed: {
    ...mapState(["movies"])
  },
  created() {
    this.$store.dispatch("fetchMovies");
  }
};
</script>

以上方法可根据项目需求灵活组合使用。

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

相关文章

vue实现列表过渡

vue实现列表过渡

vue实现列表过渡的方法 在Vue中,可以使用内置的<transition-group>组件来实现列表项的过渡效果。该组件专门为动态列表设计,能够处理元素的添加、删除和顺序变化。 基本用…

vue实现图片列表

vue实现图片列表

实现图片列表的基本方法 在Vue中实现图片列表可以通过v-for指令遍历图片数据数组,结合<img>标签动态绑定src属性。以下是基本实现步骤: <template> &…

vue视频列表实现

vue视频列表实现

Vue 视频列表实现 数据准备 定义一个数组存储视频信息,每个视频对象包含标题、封面图、播放地址等属性。 data() { return { videos: [ {…

vue实现多级列表

vue实现多级列表

实现多级列表的两种常见方法 递归组件法 通过组件递归调用自身实现嵌套渲染,适合动态层级数据。 定义组件时通过name属性使其可递归调用。 模板中使用v-for遍历数据,嵌套部分通过条件渲染递…

vue实现触摸滚动列表

vue实现触摸滚动列表

vue实现触摸滚动列表的方法 使用Vue实现触摸滚动列表需要结合移动端的触摸事件和滚动行为。以下是几种常见实现方式: 使用第三方库(推荐) 安装better-scroll库: npm instal…

vue实现列表模糊检索

vue实现列表模糊检索

实现思路 在Vue中实现列表模糊检索通常涉及以下几个关键点:利用计算属性动态过滤列表、绑定输入框的输入事件、使用正则表达式或字符串方法进行模糊匹配。 基础实现步骤 创建Vue实例或组件,定义数据列表…