漆黑菌的博客

也许面向工资编程才是先进生产力的发展方向...

事情不是你想象的那样

event事件的三种不同“阻止”方法

event事件对象的标准方法 在翻阅MDN研究怎么更改事件触发对象的时候,阅读了一下MDN中有关event事件对象的部分。发现这个对象有三个标准方法,分别是event.preventDefault、event.stopImmediatePropagation、event.stopPropagation。 event.preventDefault preventDefault方法比较熟悉,因...

一个移动端弹框组件滚动穿透的解决方案

业务场景描述 组内有一个自制的vue弹框组件,就是出一个弹框然后周围都是半透明黑色遮罩的那种。之前的业务场景中弹框中的内容都不需要滚动,因此滚动穿透问题并没有得到重视,然后这个坑我就掉进去了……前人挖坑后人跳坑(确信。组件中原本的解决方案是在组件外层添加一个事件监听,阻止默认的touchmove事件冒泡,这样弹框中需要滚动的部分也不能滚动了,而且好像在iOS上也对穿透到body滚动的问题没啥...

实用webpack插件记录

webpack-bundle-analyzer webpack-bundle-analyzer可以看到项目各模块的大小,可以按需优化。官方文档: https://www.npmjs.com/package/webpack-bundle-analyzer,中文简单介绍:https://segmentfault.com/a/1190000012220132 ip 可以直接生成通过本地IP地址访...

基于mocha的简单定时api测试

业务场景描述 新入职公司后,所在小组有个问题。后端api开发进度有时会和说好的不一样,所以前端会有人在后端说通了实际上没通的接口上浪费时间。于是老大就让我写个小工具,下次后端说接口好了的时候跑一下,看看是不是真的好了。 思路 这个需求主要可以分成两部分,一个是定时任务,一个是api测试。 定时任务 其实Linux和Windows都有完善的系统级定时任务功能,但是团队有用Mac os的也有...

一道有关闭包和变量提升的前端面试题

题目 var a = 10; (function () { console.log(a) a = 5 console.log(window.a) var a = 20; console.log(a) })() 答案 undefined,10,20 详解 本题中有两个作用域,...

JavaScript的节流与防抖函数

防抖 function debounce(fn) { var time = null return function () { window.clearTimeout(time) time = setTimeout(function () { fn.call(this,ar...

科学使用npm、yarn、node和nvm

问题 npm、yarn和nvm指令有时会遇到些不可抗力问题。 nvm是解决node版本不兼容导致项目无法启动问题的node版本管理工具 方法 给npm设置代理 启动 $ npm config set proxy http://server:port $ npm config set https-proxy http://server:port 取消 npm confi...

写给自己看的前端开发神器Emmet使用手册

Emmet是干啥的?为什么要用Emmet 在前端开发过程中,重复代码片段是比不可少的。Emmet就是一款生成HTML+CSS代码片段的神器。初识Emmet是在VS code上,因为没有发现自带HTML摸板……去问怎么快速生成。回答曰,!+Tab键即可。这就是因为VS code中内置了Emmet,而!+Tab也就是Emmet快速生成<!DOCTYPE html>代码片段的快捷键。 ...

关于vue的面试总结

vue生命周期 先上官方生命周期图 由此可见主要有8个生命周期:beforeCreate和created,beforeMount和mounted,beforeUpdate和updated,beforeDestory和destoryed。 beforeCreate创建前状态 在实例初始化之后,数据观测和暴露了一些有用的实例属性与方法。 实例初始化————new Vue() 数据观测———...

如何实现一个简单的模板字符串填充方法

题目要求 提供一个摸板字符串和一组数据,返回一个渲染完毕的字符串。 方法一:用解析字符串,提取关键字,用关键字去data中取数据。 let data:object = { name:'二狗', sex:'男' } let str: string = '姓名:${name},性别:${sex},年龄:${age}' f...