当前位置:首页 > VUE

vue视频列表实现

2026-01-18 11:21:55VUE

Vue 视频列表实现

数据准备

定义一个数组存储视频信息,每个视频对象包含标题、封面图、播放地址等属性。

data() {
  return {
    videos: [
      {
        id: 1,
        title: '视频1',
        cover: 'https://example.com/cover1.jpg',
        url: 'https://example.com/video1.mp4'
      },
      {
        id: 2,
        title: '视频2', 
        cover: 'https://example.com/cover2.jpg',
        url: 'https://example.com/video2.mp4'
      }
    ]
  }
}

列表渲染

使用v-for指令循环渲染视频列表,绑定点击事件处理视频播放。

vue视频列表实现

<div class="video-list">
  <div 
    v-for="video in videos" 
    :key="video.id"
    class="video-item"
    @click="playVideo(video)"
  >
    <img :src="video.cover" :alt="video.title">
    <h3>{{ video.title }}</h3>
  </div>
</div>

视频播放组件

添加视频播放器组件,控制视频的播放状态。

<video 
  ref="videoPlayer" 
  controls
  :src="currentVideo.url"
  v-if="currentVideo"
></video>

方法实现

定义播放视频的方法,设置当前播放视频并控制播放器。

vue视频列表实现

methods: {
  playVideo(video) {
    this.currentVideo = video
    this.$nextTick(() => {
      this.$refs.videoPlayer.play()
    })
  }
}

样式设计

为视频列表和播放器添加基本样式。

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

.video-item {
  cursor: pointer;
}

.video-item img {
  width: 100%;
  height: auto;
}

完整组件示例

将上述代码整合为完整组件。

<template>
  <div>
    <div class="video-list">
      <div 
        v-for="video in videos" 
        :key="video.id"
        class="video-item"
        @click="playVideo(video)"
      >
        <img :src="video.cover" :alt="video.title">
        <h3>{{ video.title }}</h3>
      </div>
    </div>

    <video 
      ref="videoPlayer" 
      controls
      :src="currentVideo.url"
      v-if="currentVideo"
    ></video>
  </div>
</template>

<script>
export default {
  data() {
    return {
      videos: [...],
      currentVideo: null
    }
  },
  methods: {
    playVideo(video) {
      this.currentVideo = video
      this.$nextTick(() => {
        this.$refs.videoPlayer.play()
      })
    }
  }
}
</script>

<style>
/* 样式代码 */
</style>

标签: 列表视频
分享给朋友:

相关文章

uniapp商品列表

uniapp商品列表

商品列表实现方法 在uniapp中实现商品列表功能,可以通过多种方式完成,以下是几种常见的方法: 使用scroll-view组件实现滚动列表 <scroll-view scroll-y="t…

weex  vue 实现列表

weex vue 实现列表

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

vue实现列表页面

vue实现列表页面

Vue 列表页面实现方案 基础列表渲染 使用 v-for 指令渲染数组数据,配合 :key 提升性能: <template> <ul> <li v-for=…

vue列表展开实现

vue列表展开实现

Vue 列表展开实现方法 使用 v-for 和 v-show 控制展开状态 通过 v-for 渲染列表项,配合 v-show 控制子内容的显示隐藏。需要为每个列表项维护一个展开状态。 <tem…

vue实现卡片列表

vue实现卡片列表

Vue 实现卡片列表 使用 v-for 动态渲染卡片列表 通过 Vue 的 v-for 指令可以动态渲染卡片列表,数据通常存储在组件的 data 或通过 API 获取。 <template&g…

vue 实现商品列表

vue 实现商品列表

实现商品列表的基本结构 在Vue中实现商品列表,通常需要创建一个组件来展示商品数据。可以使用v-for指令循环渲染商品列表,并通过数据绑定动态显示商品信息。 <template> &…