博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个初学者是如何制作移动端B站画友社区的
阅读量:6276 次
发布时间:2019-06-22

本文共 1770 字,大约阅读时间需要 5 分钟。

故事背景

作者:一个小透明,写着差不多的代码,在前端群经常热心帮忙解答问题,平时喜欢逛B站鬼畜区和科技区

过年前的某天午休,我一边吃饭一边逛B站,不小心手抖点进了B站画友板块,无意中发现这个板块居然是用vue写的。所以就习惯性地打开了f12,所有的请求一目了然。因为之前曾学习过黄轶的音乐课程,就想着自己是否也可以做一个类似的移动端项目,这就是社区app的背景。

github仓库地址

项目预览地址

(阿里云1Mbps的小水管,有可能资源加载比较慢,请大家多包涵= =)

一些预览图

ps.为了避免涉及侵权,所有私人作品均打码,请猛击项目预览地址进行预览。

资料准备

踩坑指南

  • B站的请求比较奇怪,首页轮播图使用的是post请求,而评论数据使用的是jsonp请求,所以我们这里要准备两个库,根据它的请求选择合适的方式获取数据
  • 我们需要伪造Request Headers里面的Host Origin Referer三个字段来瞒过B站的服务器,这里使用axios在发送请求之前改造一下我们的请求头
    这里的HEADERS被我封装了一下,因为大部分请求都是需要伪造的

如果我们想要实现一些交互功能,比如点赞、关注、收藏等功能,我们是需要登录状态的,这里我试验了一下,我们注册一个B站账号,从cookie中把我们的信息粘贴到这里,带着跟着请求一起发送过去,在真B站中是可以看到状态的变更的。我只做了关注/取关功能,其他功能,比如收藏评论等,大家可以大开脑洞尝试一下~

  • axios默认的提交数据类型是json,但是有些api,比如轮播图,请求需要的数据类型是application/x-www-form-urlencoded,这时我们就需要使用axios把我们的数据转换一下
axios({      url: 'https://api.vc.bilibili.com/oper/v1/banner/getListOnline',      method: 'post',      data: {        'product': 2,        'platform': 'pc',        'position_id[0]': 8,        'csrf_token': '
', }, transformRequest: [function (data) { let ret = '' for (let it in data) { ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&' } return ret }], headers: Object.assign(common.HEADERS, { 'Content-Type': 'application/x-www-form-urlencoded', }) }).then(response => { res.json(response.data); }).catch(e => console.log(e));复制代码
  • 在网页端,大部分图片经过优化,我们接收到的都是webp格式并且进行了裁剪,不过这里我们移动端要注意:safari浏览器在ios端是不支持webp格式的图片的。
  • 首页的推荐作品api端实现了分页查询,这里我使用better-scroll的pullUpLoading功能实现了无缝加载,具体实现方式大家可以参看bs的文档和项目代码。
  • 项目其实没有很难的技术点,比较朴实,旨在个人练习以及抛砖引玉,希望大牛轻喷: )
  • 最最重要的一点:最近推送的图片有些。。。。怎么说呢。。。。污图比较多,我也很绝望啊,我只是用了一下api,本人并不污 x10086 (-。- ;)

最后。。。本项目中所有的资源均属于B站以及作者所有,本项目全部代码已经开源,您的star是对我最大的鼓励和支持~

转载于:https://juejin.im/post/5a98dd5d518825556f54d7a3

你可能感兴趣的文章
移动OA的魅力--大众点评的“企业号”运用法则
查看>>
芯片进口额远超原油 中国芯待发力
查看>>
ARM想将芯片装进人类大脑 降低能耗是一大挑战
查看>>
Oracle数据库的备份方法
查看>>
Selenium 自动登录考勤系统
查看>>
关于如何以编程的方式执行TestNG
查看>>
智能照明造福千家万户 家居智能不再是梦
查看>>
物联网如何跳出“看起来很美”?
查看>>
浅谈MySQL 数据库性能优化
查看>>
拥抱白帽黑客,通用宣布安全漏洞报告项目
查看>>
《UNIX/Linux 系统管理技术手册(第四版)》——1.10 其他的权威文档
查看>>
灵动空间 创享生活
查看>>
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.6 UDP回射客户程序:dg_cli函数...
查看>>
不要将时间浪费到编写完美代码上
查看>>
《第一桶金怎么赚——淘宝开店创业致富一册通》一一第1章 创业梦想,怎样起步...
查看>>
基于容器服务的持续集成与云端交付(三)- 从零搭建持续交付系统
查看>>
《算法基础:打开算法之门》一3.4 归并排序
查看>>
高德开放平台开放源代码 鼓励开发者创新
查看>>
《高并发Oracle数据库系统的架构与设计》一2.5 索引维护
查看>>
《Exchange Server 2010 SP1/SP2管理实践》——2.4 部署外部网络环境
查看>>