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 相关文章推荐
Extjs根据条件设置表格某行背景色示例
Jul 23 Javascript
深入理解JavaScript编程中的原型概念
Jun 25 Javascript
JavaScript制作淘宝星级评分效果的思路
Jun 23 Javascript
JavaScript中的return语句简单介绍
Dec 07 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
Sep 05 Javascript
Bootstarp 基础教程之表单部分实例代码
Feb 03 Javascript
微信小程序 setData的使用方法详解
Apr 20 Javascript
React-Native使用Mobx实现购物车功能
Sep 14 Javascript
Node.js进阶之核心模块https入门
May 23 Javascript
Vue多系统切换实现方案
Jun 05 Javascript
JS实现处理时间,年月日,星期的公共方法示例
May 31 Javascript
vue离开当前页面触发的函数代码
Sep 01 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和ACCESS写聊天室(七)
2006/10/09 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
详解vue-cli3使用
2018/08/14 Javascript
element-ui 上传图片后清空图片显示的实例
2018/09/04 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
2019/04/11 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
python二维图制作的实例代码
2020/12/03 Python
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
德国团购网站:Groupon德国
2018/03/13 全球购物
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
涉外文秘个人求职的自我评价
2013/10/07 职场文书
建筑实习自我鉴定
2013/10/18 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
出纳岗位职责
2015/01/31 职场文书