当前位置:首页 > VUE

vue实现影片列表

2026-02-17 08:00:09VUE

Vue 实现影片列表

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

使用 v-for 渲染列表

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

vue实现影片列表

<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

vue实现影片列表

<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 集中管理影片列表数据。

<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 实现长列表的优化方法 使用虚拟滚动技术,只渲染可视区域内的元素,大幅减少DOM节点数量。通过计算滚动位置动态更新显示内容,降低内存占用和渲染压力。 <template> &l…

h5实现展开列表

h5实现展开列表

使用HTML5和CSS实现展开列表 在HTML5中,可以通过结合CSS和JavaScript实现展开列表效果。以下是几种常见的方法: 方法1:使用details和summary标签 HTML5…

jquery列表

jquery列表

jQuery 列表操作 jQuery 提供了多种方法来操作 HTML 列表(如 <ul> 或 <ol>),包括动态添加、删除、修改列表项,以及事件绑定等。 创建列表 使用…

vue实现搜索列表

vue实现搜索列表

Vue 实现搜索列表功能 在 Vue 中实现搜索列表功能通常需要以下几个关键步骤: 数据绑定与列表渲染 使用 v-model 绑定搜索输入框,监听用户输入。通过 v-for 指令渲染过滤后的列表数…

vue实现文本列表

vue实现文本列表

Vue 实现文本列表的方法 Vue 可以通过多种方式实现文本列表的渲染和管理,以下是几种常见的方法: 使用 v-for 指令渲染列表 通过 v-for 指令可以动态渲染数组或对象中的文本列表。 &…

uniapp 内容列表

uniapp 内容列表

uniapp 内容列表的实现方法 在uniapp中实现内容列表通常需要结合组件和数据绑定。以下是一个常见的方法: 模板部分 <template> <view class=…