Nuxt 个人简介页面优化(一)

简介页面

做了点更新,现在我在听歌的时候简介会显示个小图标,显示歌名

在这里插入图片描述

接口优化

返回格式优化了一下,方便前端获取

部分计算,比如当前是否正在播放以及获取专辑图片的逻辑,都放在了后端

server/api/playing/index.ts

interface MusicInfo {
  playing: boolean
  name: string
  artist: string
  albumCover?: string
}

interface Result {
  success: boolean
  data?: MusicInfo
}

音乐专辑图片加载的优化

图片预加载,封装成了函数。在这个基础上又做了页面的图片的加载效果

composables/utils/useLoadImage.ts

export default async function useLoadImage(url: string, timeout = 5000): Promise<boolean> {
  return new Promise((resolve, reject) => {
    const image = new Image()

    const timer = setTimeout(() => {
      reject(new Error('Image load timeout'))
    }, timeout)

    image.onload = () => {
      clearTimeout(timer)
      resolve(true)
    }

    image.onerror = () => {
      clearTimeout(timer)
      reject(new Error('Image load error'))
    }

    image.src = url
  })
}

nuxt-lodash 问题

本来直接安装了 lodash-es,但发现 Nuxt 有现成的模块 nuxt-lodash

安上之后发现 server 目录下的文件,编辑器报错,本来以为是类型问题,自己手动改了 tsconfig.json,添加了 Nuxt 生成的 lodash 的类型

结果控制台提示未定义,那就是自动引入的问题了

刚好借这个机会研究了一下,顺便提了个 PR

开源

Github

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值