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

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

相关文章

vue实现列表

vue实现列表

Vue 实现列表的方法 在 Vue 中实现列表渲染通常使用 v-for 指令,可以动态生成多个元素。以下是几种常见的实现方式: 基础列表渲染 使用 v-for 遍历数组,生成列表项。v-for 需…

网页制作css 列表

网页制作css 列表

创建CSS列表样式 使用CSS可以自定义HTML列表(有序列表<ol>和无序列表<ul>)的外观,包括项目符号、缩进、颜色等。以下是一些常见的列表样式方法: 基础列表样式 通…

vue实现多人视频

vue实现多人视频

Vue实现多人视频通话 使用Vue实现多人视频通话需要结合WebRTC技术和相关库。以下是关键步骤和代码示例: 安装依赖 需要安装peerjs和vue-webrtc等库: npm install…

vue实现视频上传管理

vue实现视频上传管理

视频上传管理实现方案 前端部分(Vue.js) 使用<input type="file">元素配合<video>标签实现基础上传和预览功能: <template&…

h5实现视频通话

h5实现视频通话

WebRTC 基础实现 H5 视频通话主要通过 WebRTC(Web Real-Time Communication)技术实现。现代浏览器原生支持该 API,无需插件即可完成点对点音视频传输。 安…

h5怎么实现上传视频

h5怎么实现上传视频

使用HTML5实现视频上传 HTML5提供了<input type="file">元素用于文件上传,结合<video>标签可以实现视频上传和预览功能。 <input…