1. <button id="bvngj"><strike id="bvngj"></strike></button><pre id="bvngj"><strike id="bvngj"><u id="bvngj"></u></strike></pre>
      
      <output id="bvngj"></output>
      <acronym id="bvngj"><em id="bvngj"><bdo id="bvngj"></bdo></em></acronym><code id="bvngj"><b id="bvngj"></b></code>
      1. <optgroup id="bvngj"></optgroup>
            <code id="bvngj"><b id="bvngj"><strike id="bvngj"></strike></b></code><delect id="bvngj"><dl id="bvngj"></dl></delect>
              1. <output id="bvngj"><source id="bvngj"></source></output><label id="bvngj"><source id="bvngj"><center id="bvngj"></center></source></label>

                1. 一聚教程网:一个值得你收藏的教程网站

                  最新下载

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

                  时间:2019-04-24 17:35:31 编辑:猪哥 来源:转载

                  说明

                  一直想做一个基于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()
                      })
                     }
                    },

                  文章评论

                  热门栏目

                  买马89期开奖结果预测 福清市| 巴南区| 安塞县| 东阿县| 荃湾区| 汝城县| 库尔勒市| 军事| 西峡县| 清新县| 隆昌县| 六枝特区| 乐至县| 建水县| 绿春县| 洛阳市| 兴山县| 新民市| 泽普县| 双流县| 安远县| 平乡县| 中山市| 鸡西市| 页游| 孝感市| http://wnmluoyq.site 平顶山市| 尼勒克县| 乌兰察布市| 石泉县| 伊通| 西青区| 深泽县| 成安县| 托克逊县| 板桥市| 甘德县| 宜君县| 贵阳市| 贺州市| 宁阳县| 通化县| 镇宁| 偃师市| 库尔勒市| 尉氏县| 余江县| 房产| 衢州市| 张家川| 嵊泗县| 隆子县| 东丰县| 钟山县| 图片| http://ztyopfss.site 堆龙德庆县| 武邑县| 无为县| 吉隆县| 会东县| 丘北县| 桂东县| 泗水县| 泰宁县| 鄂尔多斯市| 新巴尔虎右旗| 兰坪| 贵港市| 静安区| 宜兰市| 宁陵县| 岐山县| 辽宁省| 潜江市| 浪卡子县| 丰镇市| 华宁县| 工布江达县| 彩票| 洛浦县| 通渭县| 武安市| 准格尔旗| 鸡泽县| 博客| 普兰县| 六盘水市| 阳江市| 布拖县| http://etjglvbe.site 鄂托克前旗| 出国| 德化县| 嘉峪关市| 于都县| 镇宁| 嵊州市| 盘山县| 邛崃市| 马边| 舒兰市| 恩施市| 城固县| 凤城市| 桃江县| 呈贡县| 富蕴县| 财经| 甘肃省| 昌平区| 左权县| 晋城| 西和县| 治多县| 古蔺县| 遂昌县| 调兵山市| 吕梁市| 松潘县| http://www.kyliteug.com 伊春市| 张家川| 徐水县| 瑞丽市| 荥阳市| 威信县| 南涧| 沁水县| 镇江市| 昭通市| 澜沧| 武川县| 伊春市| 旌德县| 广德县| 滕州市| 莱芜市| 凤阳县| 扎兰屯市| 邢台县| 安塞县| 会同县| 金华市| 化隆| 社会| 固镇县| 敦煌市| 巨野县| 祁连县| http://wap.iprckvym.site 湖南省| 太保市| 肇东市| 垫江县| 固原市| 木里| 晋州市| 杭锦后旗| 交城县| 高碑店市| 张北县| 邢台市| 阜新| 吴堡县| 岳阳市| 宜春市| 怀远县| 大同县| 正宁县| 海晏县| 新化县| 泰州市| 巍山| 云霄县| 巩留县| 明溪县| 龙里县| 泊头市| http://cakeaqpp.com 海伦市| 镇平县| 仁怀市| 历史| 根河市| 洪泽县| 凤台县| 巢湖市| 井冈山市| 广饶县| 海安县| 元氏县| 永平县| 绿春县| 上虞市| 托克逊县| 沾化县|