vue模仿网易云音乐的单页面应用


Posted in Javascript onApril 24, 2019

说明

一直想做一个基于VUE的项目,但是因为项目往往要涉及到后端的知识(不会后端真的苦),所以就没有一直真正的动手去做一个项目。

直到发现GitHub上有网易云音乐的api NeteaseCloudMusicApi ,才开始动手去做。

仅仅完成了首页,登入,歌单,歌曲列表页。

项目地址

https://github.com/qp97vi/music

项目成功运行还要把后端api在本地运行

前端技术栈

vue2+vuex+vue-router+axios+mint-ui+webpack

遇到的问题

1.前端路由拦截

想做一个登录拦截,验证没有登录之前,就跳转到登录页面

解决方法是:通过http response 拦截器判断token(本地的cookie)判断

创建一个http.js

import axios from 'axios'
import store from './store/store'
import * as types from './store/types'
import router from './router/index'

// axios 配置
axios.defaults.timeout = 5000
axios.defaults.baseURL = 'https://api.github.com'

// http request 拦截器
axios.interceptors.request.use(
 config => {
  if (store.state.xsrfCookieName) {
   config.headers.Authorization = `xsrfCookieName ${store.state.xsrfCookieName}`
  }
  return config
 },
 err => {
  return Promise.reject(err)
 },
)

// http response 拦截器
axios.interceptors.response.use(
 response => {
  return response
 },
 error => {
  if (error.response) {
   switch (error.response.status) {
    case 401:
     // 401 清除token信息并跳转到登录页面
     store.commit(types.LOGOUT)
     
     // 只有在当前路由不是登录页面才跳转
     router.currentRoute.path !== 'login' &&
      router.replace({
       path: 'login',
       query: { redirect: router.currentRoute.path },
      })
   }
  }
  // console.log(JSON.stringify(error));//console : Error: Request failed with status code 402
  return Promise.reject(error.response.data)
 },
)

export default axios

2.路由懒加载

{
   path:'/my',
   name:'my',
    meta:{
    requireAuth:true,
   },
   component:resolve=>{
    Indicator.open('加载中...');
    require.ensure(['@/views/my'], () => {
     resolve(require('@/views/my'))
     Indicator.close()
    })
   }
  },

总结

以上所述是小编给大家介绍的vue模仿网易云音乐的单页面应用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
js模拟弹出效果代码修正版
Aug 07 Javascript
jQuery实现原理的模拟代码 -6 代码下载
Aug 16 Javascript
xml文档转换工具,附图表例子(hta)
Nov 17 Javascript
怎么清空javascript数组
May 11 Javascript
浅谈EasyUI中编辑treegrid的方法
Mar 01 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
Jun 18 Javascript
AngularJS 避繁就简的路由
Jul 01 Javascript
JS实现元素上下左右移动效果
Oct 18 Javascript
详解npm 配置项registry修改为淘宝镜像
Sep 07 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
Oct 07 Javascript
vue.js实现备忘录demo
Jun 26 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
Sep 21 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
Apr 24 #Javascript
详解关于webpack多入口热加载很慢的原因
Apr 24 #Javascript
微信小程序实现的一键连接wifi功能示例
Apr 24 #Javascript
vue router 通过路由来实现切换头部标题功能
Apr 24 #Javascript
js实现全选反选不选功能代码详解
Apr 24 #Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
Apr 24 #Javascript
Vue源码解析之数据响应系统的使用
Apr 24 #Javascript
You might like
php 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
使用PHP反射机制来构造"CREATE TABLE"的sql语句
2019/03/21 PHP
JavaScript this 深入理解
2009/07/30 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
2018/06/04 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
详细解读Python中的__init__()方法
2015/05/02 Python
python使用win32com库播放mp3文件的方法
2015/05/30 Python
解读Python编程中的命名空间与作用域
2015/10/16 Python
pandas把dataframe转成Series,改变列中值的类型方法
2018/04/10 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
tensorflow 环境变量设置方式
2020/02/06 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
Python3爬虫RedisDump的安装步骤
2021/02/20 Python
酒店仓管员岗位职责
2014/04/28 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
安全月宣传标语
2014/10/07 职场文书
经典导游欢迎词
2015/01/26 职场文书
优秀英文求职信范文
2015/03/19 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
文明礼貌主题班会
2015/08/14 职场文书