文章目录

  • 前言
  • 一、效果展示
  • 二、源代码
    • 使用方法
      • 1.设置代理
      • 2.新建vue组件
      • 3.设置自己的bilibili mid
  • 总结

前言

在别人的博客中看见了一个展示自己bilibili账号的组件,看着挺不错的,自己就用vue尝试写了一个。

一、效果展示


其实写这个东西并不难,自己写的也是非常简陋,还有挺多细节没有实现,不过基本的功能还是有的,剩下的以后再说。

二、源代码

代码如下(示例):

<template><div class="bilibili"><!--头像部分--><div class="head"><!--头像--><div style="left: 19px;top:16px;position: absolute;z-index: 1;"><el-avatar :size="65" :src="infom.face"></el-avatar></div><!--头像框--><div style="left: 0;top:0;position: absolute;z-index: 2;"><img :src="infom.pendant.image" height="100px"></div></div><div class="name"><!--昵称-->{{infom.name}}<!--会员--><div class="vip" v-if="have_vip">{{infom.vip.label.text}}</div><!--关注数量--><div class="num">关注数:{{this.mystate.following}}</div></div><!--等级--><div class="level">LV{{infom.level}}</div><a :href=this.mes+this.mid :underline="false" target="_blank"><div class="mes" @mouseover="change" @mouseout="unchange" id="mes">私信</div></a><a :href="aten+mid" target="_blank"><div class="atten" id="atten">关注{{this.mystate.follower}}</div></a><div></div></div>
</template><script>
export default {name: "bilibili",data(){return{aten:'https://space.bilibili.com/',mes:'https://message.bilibili.com/#/whisper/mid',mid:'',//你的bilibili idinfom:'',mystate:'',have_vip:false}},mounted() {this.$axios.get("/x/space/acc/info?mid="+this.mid).then((res)=>{this.infom = res.data.data;if(this.infom.vip.label.text){this.have_vip =true;}});this.$axios.get("/x/relation/stat?vmid="+this.mid).then((res)=>{this.mystate = res.data.data;})},methods:{change(){document.getElementById('mes').style.backgroundColor='#fb7299';document.getElementById('mes').style.color='#ffffff';},unchange(){document.getElementById('mes').style.backgroundColor='#ffffff';document.getElementById('mes').style.color='#fb7299';}}
}
</script><style scoped>
.bilibili{height: 200px;width: 240px;margin-bottom: 20px;position: relative;/*background-color: #b8b8ba;*/
}
.head{height: 80px;width: 80px;left: 0;top:0;float: left;position: relative;
}
.name{top:20px;margin-left: 15px;position: relative;float: left;color: rgb(251, 114, 153);
}
.vip{position: relative;top:5px;width: 85px;height: 18px;color: #FFFFFF;background-color: #FB7299;border-radius: 4px;
}
.level{float: left;top:20px;font-size: 10px;position: relative;margin-left: 10px;height: 20px;width: 30px;background-color: #ff6c00;color: #ffffff;line-height: 20px;border-radius: 5px;
}
.num{color: #bbbbbb;position: relative;top: 10px;font-size: 5px;
}
.mes{position: absolute;top: 100px;left: 20px;width: 68px;height: 32px;color: rgb(251, 114, 153);background-color: #ffffff;border: 1px solid rgb(251, 114, 153);line-height: 32px;cursor: pointer;border-radius: 5px;
}
.atten{position: absolute;top: 100px;left: 100px;width: 68px;height: 32px;color: #FFFFFF;background-color: #00a1d6;border: 1px solid #00a1d6;line-height: 32px;cursor: pointer;border-radius: 5px;
}
</style>

使用方法

1.设置代理

因为直接用axios请求的话会出现一个跨域问题,所以要先设置一个代理才能正确请求的数据,
找到config目录下的index.js文件

向proxyTable中添加以下内容

proxyTable: {'/api': {target: 'https://api.bilibili.com',changeOrigin: true,  // 是否跨域pathRewrite: {'^/api': ''}}},

再向main.js中添加

axios.defaults.baseURL = '/api'

之后就可以正常请求到数据了 。

2.新建vue组件

将代码复制到上面,然后导入该组件就可以使用了。

3.设置自己的bilibili mid

用网页登录bilibili,点击头像进入空间,查看一下mid,再将代码中的mid更改为你的mid就可以了 。

后面那一串数字就是mid。

总结

以后再写

使用vue写一个bilibili小组件相关推荐

  1. Vue写一个答题模板组件

    组件要求:传入问题id.类型.题目.选项(可不定个数选项) 组件根据传入的数据自动组装成问题,每页展示一个,可选择上一个.下一个.重置或者提交 地址:https://github.com/zhangz ...

  2. animation基础练习源码_用vue简单写一个音乐播放组件「附源码」

    作者:vipbic 转发链接:https://segmentfault.com/a/1190000022980992 前言 上次小编也分享一个关于Vue 开发过音乐播放对项目: 基于 electron ...

  3. 手把手教你写一个微信小程序日历组件

    今天我们一起写一个微信小程序日历组件 微信小程序日历组件 github.com/749264345/w- 好,我们先看一下要实现的模样,如下图 由以上截图我们可以看到 1.日历可以通过按钮[切换展示效 ...

  4. 用JAVA写一个画图小程序(JAVA 大作业)

    第一次写博客 且是稍微大点的程序 看看就行 重新写的在这,更加清晰明了:点击进入:用JAVA写一个画图小程序(JAVA 大作业)重排版本 设计思路 首先我直接去了Windows自带画图程序去实践模拟, ...

  5. 用vue写一个计算总价

    用vue写一个计算总价 点击移除可以删除本项 点击加减实现加减 总价随着数量增加 <!DOCTYPE html> <html><head><meta char ...

  6. 基于 Vue 制作一个猜拳小游戏

    目录 前言: 项目效果展示: 对应素材: 代码实现思路: 实现代码: 总结: 前言: 在工作学习之余玩一会游戏既能带来快乐,还能缓解生活压力,跟随此文一起制作一个小游戏吧. 描述: 石头剪子布,是一种 ...

  7. python socket能做什么_用python写一个聊天小程序!和女朋友的专属聊天工具!

    原标题:用python写一个聊天小程序!和女朋友的专属聊天工具! 1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可 ...

  8. [vue] 使用vue写一个tab切换

    [vue] 使用vue写一个tab切换 v-for循环,利用下标和v-show显示`<div id="app"><ul class="tabs" ...

  9. [vue] 写出多种定义组件模板的方法

    [vue] 写出多种定义组件模板的方法 1.字符串 2.模板字面量 3.<script type="x-template"></script> 4.文件组件 ...

最新文章

  1. html5新特性 移除哪些,html5\CSS3有哪些新特性、移除了哪些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML和HTML5?...
  2. e.printStackTrace()不是打印吗,还能锁死?
  3. cuda学习笔记1 - hello world实战
  4. Linux批量部署 EXPECT 使用
  5. python生成csv文件带水印_Python从CSV文件导入数据和生成简单图表
  6. 基于IdentityServer4 实现.NET Core的认证授权
  7. 前端学习(2224):react之函数式组件
  8. cad移动时捕捉不到基点_CAD入门必备(一)移动和复制新手必看
  9. 最近目标检测新范式汇总SparseRCNN,OneNet,DeFCN等
  10. mysql 的isnull
  11. 首提“智能X效应”,英特尔携手产业加速智能变革
  12. svn的安装linux
  13. 什么是Android Instant Apps?
  14. 跨域 CORS policy
  15. 一张照片让你的安卓手机崩溃
  16. 论文翻译--毫米波三维全息摄影的轻量级FMIST启发稀疏重建网络(1)
  17. 2023年北京理工大学理论力学考研上岸前辈备考经验指导
  18. linux查看电源状态命令,Linux下查看电池损耗等信息
  19. linux 重试密码次数超,Linux中密码策略
  20. App推广:三大思路与解决方案

热门文章

  1. gRPC 学习笔记
  2. NFS服务器实现开机自动挂载
  3. 数据分析入门系列教程-决策树原理
  4. 我与Java的故事(一次编写,“终生”运行)
  5. Android Tip : Android GestureDetector 手势识别 抬起 操作
  6. 博客备份工具——小收集
  7. 软件测试Homework1——印象最深刻的一次调bug经历
  8. CF1364B-B. Most socially-distanced sub
  9. iOS从初级到精通就业 Objective-C-栾斌-专题视频课程
  10. springboot 配置德鲁伊连接池