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实现层随着内容大小动态渐变改变 推荐
Dec 19 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
May 28 Javascript
JavaScript事件 "事件对象"的注意要点
Jan 14 Javascript
jquery插件之文字间歇自动向上滚动效果代码
Feb 25 Javascript
js动态生成form 并用ajax方式提交的实现方法
Sep 09 Javascript
Centos7 中安装 Node.js v4.4.4
Nov 03 Javascript
Vue DevTools调试工具的使用
Dec 05 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
Jul 18 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
对 Vue-Router 进行单元测试的方法
Nov 05 Javascript
微信小程序swiper禁止用户手动滑动代码实例
Aug 23 Javascript
js实现抽奖的两种方法
Mar 19 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批量删除cookie的简单实现方法
2015/01/26 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
2013/04/08 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
浅析JavaScript中的对象类型Object
2016/05/26 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
2017/03/19 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
python 从远程服务器下载东西的代码
2013/02/10 Python
为Python的web框架编写前端模版的教程
2015/04/30 Python
Python解析json文件相关知识学习
2016/03/01 Python
python 链接和操作 memcache方法
2017/03/04 Python
5个很好的Python面试题问题答案及分析
2018/01/19 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
通过代码实例了解Python sys模块
2020/09/14 Python
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
社会保险接收函
2014/01/12 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
村容村貌整治方案
2014/05/21 职场文书
社区灵活就业证明
2014/11/03 职场文书
北京导游词
2015/02/12 职场文书
三严三实·严以修身心得体会
2016/01/15 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
调研报告的主要写法
2019/04/18 职场文书
anaconda python3.8安装后降级
2021/06/11 Python
MongoDB 常用的crud操作语句
2021/06/20 MongoDB
docker 制作mysql镜像并自动安装
2022/05/20 Servers
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers