当前位置:首页 > VUE

vue实现视频列表

2026-01-18 23:30:27VUE

Vue 实现视频列表

在 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 指令渲染视频列表:

<div class="video-list">
  <div 
    v-for="video in videos" 
    :key="video.id" 
    class="video-item"
  >
    <img :src="video.cover" :alt="video.title">
    <h3>{{ video.title }}</h3>
    <video controls>
      <source :src="video.url" type="video/mp4">
    </video>
  </div>
</div>

样式优化

添加基础样式使列表更美观:

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

.video-item {
  border: 1px solid #eee;
  padding: 10px;
  border-radius: 8px;
}

.video-item video {
  width: 100%;
  margin-top: 10px;
}

使用视频播放器库

对于更复杂的播放需求,可以集成第三方库如 vue-video-player

npm install vue-video-player video.js

组件中使用:

import { videoPlayer } from 'vue-video-player'
import 'video.js/dist/video-js.css'

export default {
  components: {
    videoPlayer
  }
}

模板部分:

<video-player 
  v-for="video in videos"
  :key="video.id"
  :options="{
    sources: [{
      src: video.url,
      type: 'video/mp4'
    }],
    poster: video.cover
  }"
/>

懒加载优化

对于长列表,建议实现懒加载:

methods: {
  handleScroll() {
    const bottom = window.innerHeight + window.scrollY >= document.body.offsetHeight
    if (bottom) {
      // 加载更多视频
    }
  }
},
mounted() {
  window.addEventListener('scroll', this.handleScroll)
},
beforeDestroy() {
  window.removeEventListener('scroll', this.handleScroll)
}

响应式布局

根据屏幕尺寸调整列数:

vue实现视频列表

computed: {
  gridColumns() {
    return window.innerWidth < 600 ? 1 : 
           window.innerWidth < 900 ? 2 : 3
  }
}

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

相关文章

elementui视频

elementui视频

以下是关于 ElementUI 视频资源的整理,涵盖教程、实战案例和官方资源: ElementUI 官方视频资源 ElementUI 官方文档虽以文字为主,但部分社区或第三方平台可能有官方团队发布的…

h5实现视频

h5实现视频

使用HTML5实现视频播放 HTML5提供了内置的<video>标签,可以直接在网页中嵌入视频内容,无需依赖第三方插件如Flash。以下是实现方法和相关细节: 基本语法 <vid…

h5实现视频通话

h5实现视频通话

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

h5实现视频直播

h5实现视频直播

实现H5视频直播的基本方法 使用HTML5的<video>标签结合直播流协议(如HLS或DASH)是实现视频直播的常见方式。现代浏览器已普遍支持这些技术。 选择直播流协议 HLS(HTT…

vue实现视频

vue实现视频

Vue 实现视频播放功能 Vue 可以通过集成第三方库或直接使用 HTML5 的 <video> 标签来实现视频播放功能。以下是几种常见的方法: 使用 HTML5 <video&g…

uniapp商品列表

uniapp商品列表

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