首页 > 其他分享 >用Vue全家桶纯手工搓了一个开源版「抖音」

用Vue全家桶纯手工搓了一个开源版「抖音」

时间:2024-04-16 11:22:06浏览次数:18  
标签:douyin Vue 浏览器 抖音 纯手工 https com Angular

前言

2018年刚入行前端时,公司使用的还是Angular。Angular什么都好,就是写代码时的体验老糟心了,改一个地方,按下保存之后,要等好几秒刷新后才能看到效果,Webstorm无比好用的自动保存,对我来说反而像是一个负担。然而2024年了,Angular已经更新了17版本,还是没有解决这个问题,热替换依然那么的糟糕

在网上冲浪时,发现了刚开始火起来的Vue,大家都在说简单好用上手快,于是抱着试一试的心态照着Vue官网的教程开始学习,并创建了这个项目。一开始只是用来学习Vue练手,后面断断续续的更新,有空就优化下,完成度已经可以达到官方App的80%了

在线访问

Vercel: http://dy.ttentau.top

Github: https://github.com/zyronon/douyin

Gitee:https://gitee.com/zyronon/douyin

Apk下载地址:test-5-app.apk

注意:PC浏览器请用手机模式访问。先按F12调出控制台,再按Ctrl+Shift+M切换到手机模式

注意:手机请用Via浏览器或者Chrome浏览器预览。其他浏览器会强制将视频全屏,导致样式都失效

效果截图

技术栈

由于18年就创建项目了,所以一开始使用的是Vue2 + Vuex + Vue-Router,由于没有后端所以当时用了Mockjs来模拟接口返回数据

最近我把Vue2升级到了Vue3,Vuex也换成了更好用的Pinia。Mockjs已经好几年不更新了,而且不能延迟返回数据,达不到我要的效果,所以接口模拟这方面我换成了axios-mock-adapter这个库,超级好用!

项目所展示的网红

我把这个项目分享到V2EX后,赢得了大家一致的好评,有不少的V友说视频不错,问我项目展示了哪些网红,在此分享下

相关文章

  • vue3:如何进行组件间的信息传递
    这里以父组件——主页面|子组件1——对话框|子组件2——按钮为例父组件——主页面import{provide,ref}from"vue";#创建对象,并且其有一个value属性,现在定义为falseconstdialogVisible=ref(false);constsetdialogVisible=(value)=>{dialogVisible.value=value;......
  • 前端开发框架的选择-Vue.js
    Vue.js秉持简约哲学,通过精炼的代码实现功能——它专注于为Web应用开发提供核心工具,而非让冗余特性成为负担。这种简约设计思路使得代码更加明晰,易于阅读和维护。长远看来,Vue.js的简约特性使得项目运作更为流畅。无论是小型网站还是大型单页应用,Vue.js都能轻松应对——它并非万金......
  • vue项目中展示markdown文件(markdown-it-vue)
    //安装依赖npmimarkdown-it-vue//引入markdown-ite-vueimportMarkdownItVuefrom"markdown-it-vue";import"markdown-it-vue/dist/markdown-it-vue.css";//注册组件components:{MarkdownItVue},//使用组件<markdown-it-vueclass="......
  • VUE:vite添加环境变量(一)
    新建'.env'(和vite.config.js同一个路径下)VITE_APP_API_URL=http://localhostvite.config.jsimport{defineConfig,loadEnv}from'vite'exportdefaultdefineConfig((mode)=>{constenv_config=loadEnv(mode,process.cwd())constV......
  • 《Vue.js设计与实现》 第七章 渲染器的设计
    7.1渲染器与响应系统的结合最简单的渲染器及其使用//渲染器functionrenderer(domString,container){container.innerHTML=domString}//使用letcount=1renderer(`<h1>${count}</h1>`,document.getElementById('app'))渲染器与响应式系统结合constcount......
  • 03 Vue3路由
    Vue3的路由与Vue2相似,关于Vue2的路由器相关可以参考Vue2vue-router下面是一些补充路由器工作模式history模式优点:URL更加美观,不带有#,更接近传统的网站URL。缺点:后期项目上线,需要服务端配合处理路径问题,否则刷新会有404错误。constrouter=createRouter({ history:c......
  • vue:日期的相关方法
    1、获取当天日期,格式:yyyy-MM-ddgetCurrentDate(n){vardd=newDate();if(n){dd.setDate(dd.getDate()-n);}varyear=dd.getFullYear();varmonth=dd.getMonth()+1<10?"0"+(dd.getMonth......
  • vue2项目 network无法访问此网站
    vue2项目启动后,local可以访问,但是network不能访问防火墙等等都检查了查到原因如下:本来写的是这样,实际上端口号需要保持一致devServer:{disableHostCheck:true,open:true,host:'0.0.0.0',port:8002,https:false,hotOnly:false,public......
  • vue指令中的import不生效,如何在指令中使用import { useBaseStore, useLocalStore } fr
    在Vue指令中,不能直接使用父组件中的导入语句和变量。指令是在模板编译阶段执行的,而不是在JavaScript的运行时执行的。因此,无法在指令中直接访问父组件的导入和变量。在Vue指令中,不能直接使用ES6的import语法,因为指令是在模板编译阶段执行的,而不是在JavaScript的运行......
  • Vue中的this.$options.data()和this.$data
    Vue中的this.$options.data()和this.$data:https://blog.csdn.net/mocoe/article/details/89682022?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171316202916800178541038%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171316......