获得徽章 0
- 最近的项目里用到了mitt库,这个库是用于组件间通信的。我在某个参考的项目里发现,开发者在mounted中执行emitter.on监听某个事件,又在beforeDestroy里通过emitter.off来取消监听。由于我对vue组件的理解不够,我寻思组件都销毁了为什么还得通过emitter.off来取消事件的监听,没必要吧。今天遇到一个Bug,我只触发了一次事件,emitter.on里的回调却执行了两次,尝试了多次发现,如果不通过emitter.off来取消事件的监听,那么当前组件在销毁=>重新加载后,还保留着上次的监听,这样一来就有两个监听了。展开赞过评论1
- 昨天遇到ElementUI的导航菜单组件,设备背景色为rgba(xx,xx,xx, 0.7)踩到坑了,这个背景色不仅会被设为其实际DOM元素的内联样式,还会被设为其子元素的内联样式。这样一来子元素的背景色是在rgba(xx,xx,xx, 0.7)的基础上叠加一个rgba(xx,xx,xx, 0.7),就不是理想情况了。刚刚写到这儿的时候我看了一眼官网关于background-color属性的说明,发现人家说这里只支持hex格式......展开赞过12
- 刚刚写代码坑了一下自己:
const arr = [];
if(arr.length === 0) {
arr.push(1);
}
if(arr.length > 0) {
console.log("Test");
}
上述是最开始的代码(简化版),运行时符合预期。
我一看if之间互斥且和为全集,干脆改成if-else:
const arr = [];
if(arr.length === 0) {
arr.push(1);
} else {
console.log("Test");
}
结果不符合预期了。
由于真实业务代码略微复杂,在找原因的时候一直没注意到这里,前面if的执行会影响到后面的if展开6点赞
![[吐]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_19.249e025.png)