成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

記一次vue仿網(wǎng)易云音樂的單頁面應(yīng)用

hqman / 1744人閱讀

摘要:說明一直想做一個基于的項目但是因為項目往往要涉及到后端的知識不會后端真的苦所以就沒有一直真正的動手去做一個項目。直到發(fā)現(xiàn)上有網(wǎng)易云音樂的才開始動手去做。僅僅完成了首頁登入,歌單,歌曲列表頁。

說明

一直想做一個基于VUE的項目,但是因為項目往往要涉及到后端的知識(不會后端真的苦),所以就沒有一直真正的動手去做一個項目。
直到發(fā)現(xiàn)GitHub上有網(wǎng)易云音樂的api NeteaseCloudMusicApi,才開始動手去做。

僅僅完成了首頁,登入,歌單,歌曲列表頁。

項目地址

https://github.com/qp97vi/music
項目成功運行還要把后端api在本地運行

前端技術(shù)棧

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

前端路由攔截解決方案 原文 感謝!?。?/pre>
遇到的問題

1.前端路由攔截
想做一個登錄攔截,驗證沒有登錄之前,就跳轉(zhuǎn)到登錄頁面
解決方法是:通過http response 攔截器判斷token(本地的cookie)判斷
創(chuàng)建一個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信息并跳轉(zhuǎn)到登錄頁面
          store.commit(types.LOGOUT)
          
          // 只有在當(dāng)前路由不是登錄頁面才跳轉(zhuǎn)
          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()
        })
      }
    },

注:本文僅是用來記錄學(xué)習(xí),如涉及侵權(quán)請聯(lián)系刪除。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/110184.html

相關(guān)文章

  • Vue.js全家桶低仿網(wǎng)易音樂(MacOS版) 已新增electron打包pc平臺app

    摘要:項目地址暫時只實現(xiàn)了基本功能加了一點微小的效果主要適配瀏覽器對和做了一點微小的適配現(xiàn)在已經(jīng)包括了打包平臺的功能了源碼地址項目預(yù)覽項目描述前端部分整體加載進度懶加載模塊的加載中提示實現(xiàn)了滑塊增量分頁新曲等使用了做單頁應(yīng)用使用了處理路由使用了管 項目地址 暫時只實現(xiàn)了基本功能 加了一點微?小的效果 主要適配pc瀏覽器 對android 和ios 做了一點微?小的適配 現(xiàn)在已經(jīng)包括了ele...

    leap_frog 評論0 收藏0
  • Vue.js全家桶低仿網(wǎng)易音樂(MacOS版) 已新增electron打包pc平臺app

    摘要:項目地址暫時只實現(xiàn)了基本功能加了一點微小的效果主要適配瀏覽器對和做了一點微小的適配現(xiàn)在已經(jīng)包括了打包平臺的功能了源碼地址項目預(yù)覽項目描述前端部分整體加載進度懶加載模塊的加載中提示實現(xiàn)了滑塊增量分頁新曲等使用了做單頁應(yīng)用使用了處理路由使用了管 項目地址 暫時只實現(xiàn)了基本功能 加了一點微?小的效果 主要適配pc瀏覽器 對android 和ios 做了一點微?小的適配 現(xiàn)在已經(jīng)包括了ele...

    graf 評論0 收藏0
  • Vue.js全家桶低仿網(wǎng)易音樂(MacOS版) 已新增electron打包pc平臺app

    摘要:項目地址暫時只實現(xiàn)了基本功能加了一點微小的效果主要適配瀏覽器對和做了一點微小的適配現(xiàn)在已經(jīng)包括了打包平臺的功能了源碼地址項目預(yù)覽項目描述前端部分整體加載進度懶加載模塊的加載中提示實現(xiàn)了滑塊增量分頁新曲等使用了做單頁應(yīng)用使用了處理路由使用了管 項目地址 暫時只實現(xiàn)了基本功能 加了一點微?小的效果 主要適配pc瀏覽器 對android 和ios 做了一點微?小的適配 現(xiàn)在已經(jīng)包括了ele...

    melody_lql 評論0 收藏0
  • 從0開始的Vue全棧項目(仿網(wǎng)易音樂App)

    摘要:轉(zhuǎn)行前端一年多,之前一直忙于寫業(yè)務(wù)代碼,剛好近期不忙,就想寫一個完全屬于自己的項目。本項目因為時間關(guān)系暫時只做了部分功能,但是有空會繼續(xù)更新的。項目未完成的部分后續(xù)會逐漸完成。 轉(zhuǎn)行前端一年多,之前一直忙于寫業(yè)務(wù)代碼,剛好近期不忙,就想寫一個完全屬于自己的項目。原本打算用react來做的,但是估計邊翻api邊寫可能會花特別長的時間,所以打算這個項目完成后寫個react的項目。本項目因為...

    YFan 評論0 收藏0

發(fā)表評論

0條評論

hqman

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<