当前位置:首页 > 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>

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

相关文章

h5怎么实现视频直播

h5怎么实现视频直播

实现H5视频直播的方法 H5视频直播可以通过多种技术实现,主要包括使用HTML5的<video>标签结合流媒体协议,或借助第三方库和平台。以下是几种常见方法: 使用HLS(HTTP L…

h5 实现列表

h5 实现列表

列表实现方法 在HTML5中,可以通过多种方式实现列表,包括无序列表、有序列表和自定义列表。以下是具体的实现方法。 无序列表 无序列表使用<ul>标签,列表项使用<li>标…

h5实现实时视频通话

h5实现实时视频通话

实现H5实时视频通话的技术方案 WebRTC是实现H5实时视频通话的核心技术,无需插件即可在浏览器中实现点对点通信。以下是关键实现步骤: 基础环境准备 确保使用支持WebRTC的现代浏览器(Chro…

vue 实现列表多选

vue 实现列表多选

Vue 实现列表多选的方法 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以自动处理多选逻辑。适用于复选框(checkbox)场景。 <template> &…

php实现视频上传

php实现视频上传

视频上传功能实现 使用PHP实现视频上传功能需要处理文件接收、验证、存储等步骤。以下是具体实现方法: 创建HTML表单 前端表单需要设置enctype="multipart/form-data"…

vue 实现上传视频

vue 实现上传视频

使用 Vue 实现上传视频功能 在 Vue 中实现上传视频功能,通常需要结合 HTML 的 <input type="file"> 元素和 Vue 的事件处理。以下是具体实现方法: 基本…