有关使用electron-vue写一个音乐播放器的感想与总结

最近在写这个,用electron写网易云音乐。使用electron的初衷是因为网易云音乐api这个项目使用的是nodejs,如果用python的话中间还要处理一下这个api问题,处于怕麻烦的原因所以避开了。个人觉得electron写可以向写网页一样些应用,应该相对来说会简单许多。说实话写到现在,网页本身就不好写,用网页写个应用也非常麻烦,不过好在开发速度还是可以的。
总结一些目前遇到过的一些问题及解决方法。
首先,网易云音乐api,原本想要把这个项目解开的,但最后还是算了,里面const、exports、require混用的问题,导致我编译出问题。最后在.babelrc里的plugin里加入了这个,就变成下面这样了。

 plugin [
     "transform-runtime",
     "transform-es2015-modules-commonjs"
 ]

关于electron,由于api要启动一个服务器,所以我想要把启动服务器的代码变成一个线程来做。嗯,我这个想法破产了。最终把启动的代码混在主进程了,十分难看。我尝试了一下将代码分离,然而不行,编译的时候老是提示路径找不到,最终混在一起写。electron只好用ipc进行交互,render里用不了nodejs,主进程可以,写frameless自定义按钮的时候用了ipc进行交互。
还有就是有关vue的,将整个web工程拆分成一个个模板挺不错的,然而也造成了写的时候很零碎,设计到多个模板交互的时候很繁琐。可以试试用插件弥补,目前我还没用到。
写项目的时候,onblur和onclick的问题把我恶心吐了。如果用mousedown会让各个模板的交互变得贼恶心,settimeout的方法没有效果。网络上的方法试了个遍没有法子,只好用最粗暴的方法解决。
这里主要是做下拉菜单,点击会选中,但由于onblur会比onclick先执行,所以onclick会失效。我在这里用了一个flag来标记鼠标范围,默认为false,当鼠标mouseover菜单是flag为true,mouseout标记为false。想要关闭菜单,鼠标就不能在菜单内。v-if的条件为(鼠标不在菜单&&失去焦点)。这样就用了一个非常粗暴的方式实现了。希望能给你们带来点启发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值