Vue 2.0 高级实战 开发移动端音乐WebApp--笔记

五迷三道 提交于 2019-12-24 18:29:33

1.3个没用过的插件

“babel-runtime”: “^6.0.0”,
“fastclick”: “^1.0.6”
所有的点击没有300毫秒的延迟
移动设备上的浏览器默认会在用户点击屏幕大约延迟300毫秒后才会触发点击事件,这是为了检查用户是否在做双击。为了能够立即响应用户的点击事件,才有了FastClick。
“babel-polyfill”: “^6.2.0”,
用来实现es6的转换
vue-lazyload
图片懒加载,节约资源

2.最新版vuejs没有dev-server.js

方法:修改webpack.dev.conf.js中的代码
在这里插入图片描述
1.前面先定义一下
const axios = require(‘axios’)
2.在devServer中添加一个before方法
在这里插入图片描述

3.右侧垂直方向居中

水平方向居中
align-items:center

垂直方向居中
flex-direction: column
justify-content:center
在这里插入图片描述

4.fastclick和better-click冲突

添加一个needsclick的类,图片就可以被点击
在这里插入图片描述

5.prefixStyle()函数使用

操作css3的一些属性,为了浏览器的兼容性,我们需要添加一些前缀。
如果写在css样式中,编辑器自带的功能一般可以实现,或者通过gulp,webpack打包时也都有插件实现自动添加

在js中,可以通过代码封装一个prefixStyle()函数

在这里插入图片描述
在这里插入图片描述

6.store文件夹介绍

一般要使用vuex存储数据
1.state.js中定义数据
2.getters.js中定义数据的映射
3.mutation-types定义一些变量,在mutations中使用
4.mutations修改数据

在一个动作中,多次修改mutations,就定义一个actions
在这里插入图片描述

7.获取不到歌曲播放源

问题:在common/js/song.js中
通过url: http://ws.stream.qqmusic.qq.com/${musicData.songid}.m4a?fromtag=46
获取不到歌曲

解决方法:通过axios获取歌曲
1.在webpack.dev.conf.js中添加以下代码
在这里插入图片描述

2.在api/song.js中定义
在这里插入图片描述

3.换url
url: http://dl.stream.qqmusic.qq.com/C400${ musicData.songmid }.m4a?vkey=${songVkey}&guid=2180150330&uin=0&fromtag=66

4.引用getMusicSource函数
在这里插入图片描述

8.随机播放出现的问题

问题:
当随机播放时,点击歌曲列表中的歌曲,播放的和点击的不是同一首
如果不定义_arr,传入的arr就会被修改
在这里插入图片描述

9.lyric-parser

第3方组件,根据时间,将歌词变成数组
在这里插入图片描述

10.歌词闪动bug

歌词有定时器控制,切换歌曲的时候,歌词的定时器没有关闭
切换歌曲之前,先把之前歌词的定时器给关闭了

在这里插入图片描述

11.歌曲暂停歌词不停bug

togglePlaying函数中添加

调用lyric-parser的togglePlay()方法
在这里插入图片描述

12.循环播放歌曲不归位bug

loop函数中修改
调用lyric-parser的seek方法
在这里插入图片描述

13.拉进度条歌词不变bug

onProgressBarChange函数中修改
在这里插入图片描述

14.延时播放

当在微信播放时,后台中,js不执行,但是audio可以将当前的歌曲播放完毕
这样歌曲播放完毕之后,不能使songReady变为true
切换不了歌曲

解决方法:延长play的时间,使得在手机浏览器上使用时,从后台切换到前台,播放器正常播放

在这里插入图片描述
在这里插入图片描述

15.mounted和activated

mounted:当dom ready的时候,触发
activated:当keep-active切换的时候,触发

16.扩展运算符

将两个对象,扩展到一个对象中
在这里插入图片描述

17.搜索数据

搜索数据要处理一下才能输出
在这里插入图片描述

18.上拉加载和下拉刷新

19.滚动列表时,search-box失去焦点

我们在search-box输入query时,移动端会弹起键盘(search-box有焦点),当我们滚动搜索结果的列表时,我们需要收起键盘,即让search-box失去焦点

scroll组件中监听一个"beforeScrollStart"事件,监听到这个事件后,派发一个”beforeScroll”事件。
scroll组件的父组件suggest组件,监听”beforeScroll”事件,监听到这个事件,派发一个"listScroll"事件。
suggest组件的父组件search组件,监听"listScroll"事件,并执行"blurInput"函数,在"blurInput"函数中调用子组件"search-box"的blur方法

移动端可以看到效果,pc端无法演示,但是可以看见一滚动列表,search-box就失去焦点了

19.切换太快,暂停后歌词继续滚动bug

将canplay改成play
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

19.user-select: none

文本不能被选择

20.backface-visibility

属性定义当元素不面向屏幕时是否可见。
如果在旋转元素不希望看到其背面时,该属性很有用。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!