vue完美模拟pc版快手实现短视频,含短视频详情播放

news2024/11/30 14:25:08

目录

一、预览

二、效果图

项目实现的demo效果图:

 三、项目细节说明

1.项目结构、设计说明

2.项目可拓展能力题外话(看不懂可以忽略)

 3.项目路由配置

 4.框架布局页面源码

5.首页实现

四、总结


一、预览

本作品demo预览地址:点击预览

 本项目仿照快手模拟实现效果。

二、效果图

1.首页

 2.短视频详情页:

 三、项目细节说明

1.项目结构、设计说明

项目以vue项目创建,前端某些元素使用element,项目启动执行的命令为:

npm install
npm run dev(当然命令可以修改为npm run serve,没啥区别)


2.项目可拓展能力题外话(看不懂可以忽略)

结构如下截图,项目已经集成和实现了需要请求后端接口的一切功能,所以无须花费精力去考虑前端如何去对接后端和接口,可以把一切精力放在实现前端界面设计上来。

这样不懂后端的伙伴也省心省力,接口请求只需按照模板去copy就好,无非就是get/post/delete/put等请求方式和参数传递的差别,当然不明白的可以细问作者。

项目结构还是分为:顶部+具体功能显示容器+底部,页面存放于src/page目录下,看目录命名就能明白其含义,具体功能页面在views目录下。

路由权限也是很重要的一个功能,为permission.js,所有页面跳转都会经过其拦截,有人问,路由权限有什么用,好说,比如订单页面或个人中心页面吧,肯定是需要登录才能访问的,首页却是无需登录即可访问的,那么就可以在permission.js里面获取登录token,有token即表示已经登录,可以访问订单或个人中心页面,否则跳转登录页等。

 3.项目路由配置

import Vue from 'vue'
import Router from 'vue-router'
import Layout from '@/page/index/index'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/index',
      component: Layout,
      children: [{
        path: '',
        name: '主页',
        component: () =>
          import( /* webpackChunkName: "views" */ '@/views/home/index')
      }]
    },
    {
      path: '/',
      name: '主页',
      redirect: '/index'
    },
    {
      path: '/detail',
      name: '详情页',
      component: () =>
        import( /* webpackChunkName: "page" */ '@/views/detail/index'),
    }
  ]
})

 4.框架布局页面源码

<template>
  <div class="page-scroll" style="width: 100%;height: 100%;overflow: auto;">
    <top></top>
    <router-view style="min-height: calc(100% - 100px);"></router-view>
    <foot></foot>
    <el-backtop target=".page-scroll" :bottom="100">
      <div
        style="{
        height: 100%;
        width: 100%;
        background-color: #f2f5f6;
        box-shadow: 0 0 6px rgba(0,0,0, .12);
        text-align: center;
        line-height: 40px;
        color: #1989fa;
      }"
      >
        UP
      </div>
    </el-backtop>
  </div>
</template>

<script>
  import top from "../top/index.vue";
  import foot from "../foot/index";

  export default {
      components: {
        top,
        foot
      },
      name: "index",
      data() {
        return {
        };
      },
      mounted() {
      },
      methods: {
      }
    };
</script>

<style scoped>
</style>

5.首页实现

<template>
  <div style="font-size: 14px;" class="brillant">
    <div class="container">
      <div class="rank">
        <div class="video-title">
          <div class="video-title-content">
            <h2 class="title-text"> 短视频热榜 </h2>
            <!---->
          </div>
        </div>
        <div class="rank-content">
          <div v-for="(item,index) in hotData" :key="index" @click="detail(item)" class="video-card video-item vertical" style="--k-video-count:10;">
            <div class="video-card-main">
              <div class="card-link">
                <div class="poster">
                  <img alt="封面" class="poster-img" :src="item.cover">
                </div>
                <!---->
                <i class="rank-icon rank-icon-first" :style="index===0?'background-color: #fe3666;':(index===1||index===2?'background-color: #ff6f00;':'')" >
                  <span  class="rank-info" style="">{{index+1}}</span>
                </i>
              </div>
              <!---->
            </div>
            <div class="video-info">
              <h5 class="video-info-title">{{item.name}}</h5>
              <div class="video-info-content">
                <!---->
                <span class="info-text">{{item.hotNum}}热度</span>
              </div>
              <!---->
            </div>
          </div>
        </div>
      </div>

      <div class="detail">
        <div class="video-title">
          <div class="video-title-content"><h2 class="title-text" data-v-ab0efcfc=""> 精彩短视频 </h2><!----></div>
        </div>
        <div class="detail-content">
          <div v-for="(item,index) in wonderfulData" :key="index" @click="detail(item)" class="video-card-wonderful video-item vertical">
            <div class="video-card-main">
              <div class="card-link">
                <div class="poster">
                  <img alt="封面" class="poster-img" :src="item.cover">
                </div>
                <div class="pre-poster">
                  <img alt="no-pre" class="pre-poster-img" :src="item.gif">
                </div>
                <!---->
              </div>
              <!---->
            </div>
            <div class="video-info">
              <h5 class="video-info-title">{{item.name}}</h5>
              <div class="video-info-content">
                <i class="icon like-icon"></i>
                <span class="info-text">{{item.likeNum}}喜欢</span>
              </div>
              <!---->
            </div>
          </div>
        </div>
      </div>

    </div>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        hotData:[//短视频热榜
          {name:'这艘国产邮轮的名字有深意',cover:require('../../../public/img/B009e8408f7f4943dafc68cef21ba3799.jpg'),hotNum:'991.7万'},
          {name:'看戏曲少年飒爽变装赵子龙',cover:require('../../../public/img/Bee7cd5584f90863e9e3c57c2c0a62ac5.jpg'),hotNum:'973万'},
          {name:'寒窗十年谁不是为了这所大学',cover:require('../../../public/img/B7c53331e43fa912923470da32c0ec1e7.jpg'),hotNum:'905.4万'},
          {name:'严打雇佣网络水军诋毁企业行为',cover:require('../../../public/img/Bc737eac0665904874ce0602bf5ca73e4.jpg'),hotNum:'891.8万'},
          {name:'原神版多巴胺穿搭',cover:require('../../../public/img/Bbb03475138758644b457113263cb4b9b.jpg'),hotNum:'854.7万'},
          {name:'耶耶耶dj摇',cover:require('../../../public/img/Bc3fdf9a56e1d2af48fcf289997157898.jpg'),hotNum:'842.6万'},
          {name:'音乐一响 白月光登场',cover:require('../../../public/img/B5981a6060422d7f93fe042e025b299e8.jpg'),hotNum:'842.4万'},
          {name:'直击俄乌激烈战场',cover:require('../../../public/img/B6a21ad2a802d23f2588964fc098c80e6.jpg'),hotNum:'842万'},
          {name:'听悲伤的情歌看离别的戏',cover:require('../../../public/img/Bf065a7626279f999a75ad4bc337b1ff3.jpg'),hotNum:'841.7万'},
          {name:'快来干了这碗北京豆汁儿',cover:require('../../../public/img/B2ce44f66dc5ec827d5ec92099fd59057.jpg'),hotNum:'841.5万'}
        ],
        wonderfulData:[//精彩短视频
          {name:' #斗罗大陆 #斗罗大陆唐三小舞 #春日暴击 ',likeNum:'2640',cover:require('../../../public/img/B1bea20fa5c910e3fc578f4dc7cdd2dce.jpg'),gif:require('../../../public/img/B93650b4e3f3c9dfba156a1e0ddb77975.gif')},
          {name:' 男孩救下一只小猫,不料小猫变成女神以身相许 #我的喵星女友 #艾特出你想艾特的人 #好剧推荐 ',likeNum:'3.6万',cover:require('../../../public/img/B2feadddeecd2018bdd1e80bfe17a67fe.jpg'),gif:require('../../../public/img/B77f6b094f837cd4084a60e0dd865b615.gif')},
          {name:' #斗罗大陆 #斗罗大陆唐三小舞 #春日暴击 ',likeNum:'2640',cover:require('../../../public/img/B1bea20fa5c910e3fc578f4dc7cdd2dce.jpg'),gif:require('../../../public/img/B93650b4e3f3c9dfba156a1e0ddb77975.gif')},
          {name:' 男孩救下一只小猫,不料小猫变成女神以身相许 #我的喵星女友 #艾特出你想艾特的人 #好剧推荐 ',likeNum:'3.6万',cover:require('../../../public/img/B2feadddeecd2018bdd1e80bfe17a67fe.jpg'),gif:require('../../../public/img/B77f6b094f837cd4084a60e0dd865b615.gif')},
          {name:' #斗罗大陆 #斗罗大陆唐三小舞 #春日暴击 ',likeNum:'2640',cover:require('../../../public/img/B1bea20fa5c910e3fc578f4dc7cdd2dce.jpg'),gif:require('../../../public/img/B93650b4e3f3c9dfba156a1e0ddb77975.gif')},
          {name:' 男孩救下一只小猫,不料小猫变成女神以身相许 #我的喵星女友 #艾特出你想艾特的人 #好剧推荐 ',likeNum:'3.6万',cover:require('../../../public/img/B2feadddeecd2018bdd1e80bfe17a67fe.jpg'),gif:require('../../../public/img/B77f6b094f837cd4084a60e0dd865b615.gif')},
          {name:' #斗罗大陆 #斗罗大陆唐三小舞 #春日暴击 ',likeNum:'2640',cover:require('../../../public/img/B1bea20fa5c910e3fc578f4dc7cdd2dce.jpg'),gif:require('../../../public/img/B93650b4e3f3c9dfba156a1e0ddb77975.gif')},
          {name:' 男孩救下一只小猫,不料小猫变成女神以身相许 #我的喵星女友 #艾特出你想艾特的人 #好剧推荐 ',likeNum:'3.6万',cover:require('../../../public/img/B2feadddeecd2018bdd1e80bfe17a67fe.jpg'),gif:require('../../../public/img/B77f6b094f837cd4084a60e0dd865b615.gif')},
          {name:' #斗罗大陆 #斗罗大陆唐三小舞 #春日暴击 ',likeNum:'2640',cover:require('../../../public/img/B1bea20fa5c910e3fc578f4dc7cdd2dce.jpg'),gif:require('../../../public/img/B93650b4e3f3c9dfba156a1e0ddb77975.gif')},
          {name:' 男孩救下一只小猫,不料小猫变成女神以身相许 #我的喵星女友 #艾特出你想艾特的人 #好剧推荐 ',likeNum:'3.6万',cover:require('../../../public/img/B2feadddeecd2018bdd1e80bfe17a67fe.jpg'),gif:require('../../../public/img/B77f6b094f837cd4084a60e0dd865b615.gif')},
          {name:' #斗罗大陆 #斗罗大陆唐三小舞 #春日暴击 ',likeNum:'2640',cover:require('../../../public/img/B1bea20fa5c910e3fc578f4dc7cdd2dce.jpg'),gif:require('../../../public/img/B93650b4e3f3c9dfba156a1e0ddb77975.gif')},
          {name:' 男孩救下一只小猫,不料小猫变成女神以身相许 #我的喵星女友 #艾特出你想艾特的人 #好剧推荐 ',likeNum:'3.6万',cover:require('../../../public/img/B2feadddeecd2018bdd1e80bfe17a67fe.jpg'),gif:require('../../../public/img/B77f6b094f837cd4084a60e0dd865b615.gif')},
          {name:' #斗罗大陆 #斗罗大陆唐三小舞 #春日暴击 ',likeNum:'2640',cover:require('../../../public/img/B1bea20fa5c910e3fc578f4dc7cdd2dce.jpg'),gif:require('../../../public/img/B93650b4e3f3c9dfba156a1e0ddb77975.gif')},
          {name:' 男孩救下一只小猫,不料小猫变成女神以身相许 #我的喵星女友 #艾特出你想艾特的人 #好剧推荐 ',likeNum:'3.6万',cover:require('../../../public/img/B2feadddeecd2018bdd1e80bfe17a67fe.jpg'),gif:require('../../../public/img/B77f6b094f837cd4084a60e0dd865b615.gif')},
          {name:' #斗罗大陆 #斗罗大陆唐三小舞 #春日暴击 ',likeNum:'2640',cover:require('../../../public/img/B1bea20fa5c910e3fc578f4dc7cdd2dce.jpg'),gif:require('../../../public/img/B93650b4e3f3c9dfba156a1e0ddb77975.gif')},
          {name:' 男孩救下一只小猫,不料小猫变成女神以身相许 #我的喵星女友 #艾特出你想艾特的人 #好剧推荐 ',likeNum:'3.6万',cover:require('../../../public/img/B2feadddeecd2018bdd1e80bfe17a67fe.jpg'),gif:require('../../../public/img/B77f6b094f837cd4084a60e0dd865b615.gif')}
        ]
      };
    },
    mounted() {
    },
    methods: {
      detail(item){
        console.info(item);
        this.$router.push({path:'/detail'})
      }
    }
  };
</script>

四、总结

后续不定期将不断完善和增加功能页面,敬请期待。

关注作者,及时了解更多好项目!

作者主页也有更多好项目分享!

获取源码或如需帮助,可通过博客后面名片+作者即可!

 其他作品集合:

  1. 《vue+element实现美观大方好看的音乐网站,仿照咪咕音乐网》     
  2. 《vue实现功能完整的购物商城,商品零食、电商通用商城》
  3. 《vue+element实现蔬菜、水果、电商商城》
  4. 《vue+element简单实现电商商城网站,模仿小米电商商城》
  5. 《vue实现美观大方的动漫、cos、帖子类型网站》
  6. 《vue实现好看的相册、图片网站》
  7. 《高度仿PC版《微信读书》,好看的小说、读书网站》
  8. 《vue+element实现非常好看的鲜花网站商城,页面完整,样式美观》
  9. 《vue+elementui+springboot前后端分离实现通用商城管理后台》
  10. 《微信小程序日记、微信小程序个人空间、个人日记》
  11. 《vue+element模仿腾讯视频电影网站》
  12. 《vue+element高度仿照QQ音乐,完美实现PC端QQ音乐》
  13. 《vue+element详细完整实现个人博客、个人网站》
  14. 《vue+elementui+springboot前后端分离实现学校帖子网站,学校大作业》
  15. 《vue+elementui实现U袋网-完整版》
  16. 《vue+element+electron仿微信实现》
  17. 《vue+element模仿电商商城,前后端分离实现,下单微信扫码支付》
  18. 《electron+vue+elementui实现类似QQ窗口靠边自动边缘隐藏》
  19. 《微信小程序仿唯聚时代,微信小程序商城》
  20. 《jquery+bootstrap完整丰富样式开发框架源码,各种现成样式简单易用》
  21. 《html+css响应式旅游主题网站模板,旅游网站,企业文化新闻类网站》
  22. 《css+html各种动态、动画、3D相册等7件套》
  23. 《仿华为电商商城,官网,华为超级新品日demo,大屏霸气且简洁》
  24. 《vue+element简单实现商城网站首页,模仿电商商城》
  25. 《vue+elementui实现非常好看的博客、网站首页,网站模板》
  26. 《elementui+vue实现经典管理系统布局框架,拿来即用》
  27. 《简系统登录页模板html+vue+elementui》
  28. 《vue+elementui完美实现博客、网站、个人网站,高仿“张凯博客”》
  29. 《vue+elementui完美实现后台管理系统的左、右、顶部菜单布局》
  30. 《html5+css3实现3D正方体动画相册2种+3D旋转木马立体动画相册+表白文字加动画爱心+炫酷万花筒五件套含音乐》
  31. 《后端使用springboot+maven+shiro+mybatis+mysql,前端使用H-ui.admin_v3.1.3.1,快速实现管理后台功能》
  32. 《springboot+thymeleaf+maven+html+css实现精美大方好看官网模板完整源码》
  33. 《html+css实现好友列表,类似QQ群聊成员列表》
  34. 《景区项目-完整数据动态交互(vue+element)》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/619697.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试工程师该何去何从?写给30+岁的测试工程师!

前言&#xff1a; 软件测试是为了发现程序中的错误而执行程序的过程。 通俗的说&#xff0c;软件测试需要在发布软件之前&#xff0c;尽可能的找软件的错误&#xff0c;尽量避免在发布之后给用户带来不好的体验&#xff0c;并要满足用户使用的需求。 首先今年行情肯定比去年好…

【Java|多线程与高并发】线程的中断的两种方法

文章目录 1.前言2. 方法1: 自定义标志位3. 方法2:使用标准库自带的标志位4.总结 1.前言 线程中断是指在一个线程执行的过程中&#xff0c;强制终止该线程的执行。虽说是中断,但本质上是让run方法快点执行完,而不是run方法执行到一半,强制结束. 本文主要介绍线程中断的两种方法…

电力通信机房如何管理?你绝对想不到!

在信息化建设中&#xff0c;机房运行是信息交换管理的核心。机房内的所有设备必须始终正常工作&#xff0c;否则一旦某个设备出现故障&#xff0c;就会对数据传输、存储和系统运行造成威胁&#xff0c;进而影响全局系统的运行。 机房内的3大安全隐患 01.典型的事故包括电气、消…

HighCharts图表的呈现

HighCharts用法说明地址&#xff1a;Highcharts API 文档 | Highcharts 通过地址打开会出现新版&#xff0c;也可以切换到旧版&#xff0c;以上图是旧版&#xff0c;旧版有详细的备注更方便使用 大致的界面呈现上方提供的地址可以实现&#xff0c;在这个地方主要说明几个注意点…

耗时108天,终于有人把金九银十面试必问的1309道Java面试题全部整理出来了

就目前大环境来看&#xff0c;跳槽成功的难度比往年高很多。一个明显的感受&#xff1a;互联网行业竞争越来越严峻&#xff0c;面试也是越来越难&#xff0c;不少大厂&#xff0c;如阿里、腾讯、华为的招聘名额明显减少&#xff0c;面试门槛却一再拔高&#xff0c;其实&#xf…

AI安防视频融合平台EasyCVR服务启动异常的原因排查与解决

EasyCVR视频融合平台基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;平台支持多协议、多类型的设备接入&#xff0c;包括主流标准协议国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大…

求子网掩码的有效地址

第一步&#xff1a;通过题目可以得知&#xff0c;这个子网掩码属于C类&#xff0c;故ABCD四个选项&#xff0c;我们只需要看最后一位 第二步&#xff1a;题干给的是224&#xff08;我们只需要知道哪8位二进制数加起来等于224即可&#xff09; 很明显这个192<224&#xff1b…

在线时间戳在代码签名中起什么作用?

代码签名为可执行文件提供完整性证明&#xff0c;确保它们未被修改或损坏。许多现代操作系统需要代码签名机制&#xff0c;以保护其用户免受未知来源或没有真实性保证的软件代码的侵害。与HTTPS类似&#xff0c;证书颁发机构创建的受信任证书颁发给软件开发者&#xff0c;由软件…

Swin-Transformer网与源码

论文名称&#xff1a;Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 原论文地址&#xff1a; https://arxiv.org/abs/2103.14030 官方开源代码地址&#xff1a;https://github.com/microsoft/Swin-Transformer Pytorch实现代码&#xff1a; pytor…

燕小千AIGC大模型集成,实现企业文档的智能问答,燕千云v1.21.0全新版本与你“童”行!

5月26日&#xff0c;燕千云数智化业务服务平台发布了1.21版本&#xff0c;此次版本大升级主要围绕系统易用性提升&#xff0c;对在线客服、智能助理及企微移动端进行优化、新增上下游管理、重复问题分析等功能&#xff0c;多方面增加了IT服务的场景&#xff0c;从功能层面深化了…

CnOpenData上市公司社交媒体账号数据

一、数据简介 据《上市公司信息披露管理办法》&#xff0c;上市公司作为信息披露义务人&#xff0c;应真实、准确、及时、完整地向市场公开依法及自愿披露的信息。这些公开披露的信息包含但不仅限于公司基本情况、主要会计数据和财务指标、股东持股情况、高管薪酬情况等。上市公…

字节面试这么难?6年测开被暴虐.....

前几天我朋友跟我吐苦水&#xff0c;这波面试又把他打击到了&#xff0c;做了快6年软件测试员。。。为了进大厂&#xff0c;也花了很多时间和精力在面试准备上&#xff0c;也刷了很多题。但题刷多了之后有点怀疑人生&#xff0c;不知道刷的这些题在之后的工作中能不能用到&…

做长尾关键词究竟能给网络营销带来什么好处呢

众所周知&#xff0c;长尾关键词具有很强的目的性&#xff0c;就说明用户对于此种性质的关键词是有一定需求的&#xff0c;所以就很容易使用户准确的找到自己想要的内容&#xff0c;通过它带来的客户&#xff0c;转化为网站产品客户的概率会比目标关键词高很多&#xff0c;因此…

mysql8中的sys和mysql消失不见了

只要你没有主动删除过这个两个库&#xff0c;那么这两个库不见了是正常的。 rootubuntu:/etc/mysql/mysql.conf.d# mousepad mysqld.cnf skip-grant-tables 保存后关闭 service mysql restart -------------------------------------------------------------------------…

Qt学习之旅 - 标准对话框

文章目录 消息对话框错误对话框信息对话框提问对话框警告图标 其他标准对话框QColorDialog:颜色对话框QFileDialog:选择文件或者目录QFontDialog:选择字体QInputDialog: 允许用户输入一个值&#xff0c;并将赋值返回QPageSetupDialog:为打印机提供纸张相关选项QPrintDialog: 打…

【6.07 代随_50day】 买卖股票的最佳时机 III、买卖股票的最佳时机 IV

买卖股票的最佳时机 III、买卖股票的最佳时机 IV 买卖股票的最佳时机 III1.动态规划方法图解步骤递归代码 买卖股票的最佳时机 IV1.动态规划方法图解步骤代码 买卖股票的最佳时机 III 力扣连接&#xff1a;123. 买卖股票的最佳时机 III&#xff08;中等&#xff09; 1.动态规…

公司来了个卷王之王,真让人崩溃····

现在的小年轻真的卷得过分了&#xff0c;真是完全不把自己当人啊 这不&#xff0c;前段时间我们公司来了个98年的&#xff0c;工作没2年&#xff0c;跳槽到我们公司起薪就18K&#xff0c;都快接近我了&#xff0c;以后超越我只是时间问题&#xff0c;后来才知道人家是个卷王&a…

5.10 Vue配置路由(vue-router)

Vue配置路由vue-router 目录一、 路由vue-router概述二、 配置步骤1. 安装 Vue Router2. 安装确认2. 引入vue-router并使用3. 注入router4. 新建视图文件夹和文件5. 在模板中使用路由 目录 一、 路由vue-router概述 官方网站&#xff1a;https://v3.router.vuejs.org/zh/insta…