摘要:websocket 的基本使用:var ws = new WebSocket(url); ws.onclose = function () { //something reconnect(); // 自定义的 websocket 重连方法 }; ws.onerror = function () {
阅读全文
摘要:需求:发起一个 AJAX 请求,根据请求结果来打开一个新页面。 问题:AJAX 请求后,使用 window.open() 方法来打开新页面会被浏览器阻止。 解决方法:在 AJAX 请求之前,就使用 const newWindow = window.open('about:blank'); 来打开一个
阅读全文
摘要:1、安装 stylelint: npm i stylelint -g npm i stylelint stylelint-config-standard --save-dev 2、在 scripts 里添加 stylelint 应用的目录文件 3、安装 pre-commit npm i pre-co
阅读全文
摘要:首先安装依赖 npm i jest -g npm i jest babel-jest identity-obj-proxy enzyme enzyme-adapter-react-15.4 react-addons-test-utils --save-dev 以上 enzyme-adapter-re
阅读全文
摘要:参考:https://zh.wikipedia.org/wiki/%E4%BA%92%E8%81%94%E7%BD%91%E5%AA%92%E4%BD%93%E7%B1%BB%E5%9E%8B 互联网媒体类型是用来给互联网上传输的各种内容进行分类 比如 HTML 会使用到 <meta http-eq
阅读全文
摘要:如代码所示,父路由要接收参数,子路由也要接收参数。 这种情况下,子路由就需要写完整的路径:/profile/community/:companyId/:companyName,而不是简写的:community/:companyId/:companyName。 完整的路径才能正常匹配,而简写方式会将
阅读全文
摘要:当一个元素设置为 fixed 或 absolute,不设置 top, left 则会在原位置,而脱离文档流,别的元素可以存在于它之后。 而当使用 fixed 后还想相对于父容器进行定位,或者说在当前位置进行位移,则可以通过设置 margin 值来修改元素的位置。
阅读全文
摘要:点击空白处隐藏弹出层的原理是:在 document 上绑定事件来隐藏弹出层,这样点击任何元素的时候都会冒泡到 document 上,都会执行隐藏弹出层的功能。然后我们在不需要隐藏弹出层的元素上阻止冒泡即可。
阅读全文
摘要:canvas 里绘制的图形不是一个实体 DOM,所以要给每个绘制的图形添加事件操作比给 DOM 添加事件要复杂很多。 所以,我们需要使用一个 canvas 的 isPointInPath(x, y) 方法,来获取鼠标相对于浏览器的坐标,然后还需要计算出鼠标相对于 canvas 画布的坐标,最后通过
阅读全文
摘要:主要就是使用了一个 cache 对象来进行数据缓存,通过某种方式(如参数)生成一个独一无二的 key,对应的值就是缓存的值。 只要再次传入相同的参数,就从 cache 中进行取值,而不再进行计算
阅读全文
摘要:Virtual DOM 就是用 JS 的对象来描述 DOM 结构的一个 DOM 树。如: 这个 DOM 树会通过算法生成真实的 DOM 插入到页面中。 当要修改 DOM 的时候,我们更新 state 的数据后,会得到一个新的 Virtual DOM 树,然后用新的 Virtual DOM 树和老的进
阅读全文
摘要:在 iOS10 下,即使设置了 meta 标签的 user-scalable=no 依然不能阻止用户缩放。 解决此 BUG 的方法是阻止 PC 事件: 另外,此方法还能解决 iOS10 中横向页面溢出,即使给 body 设置了 overflow:hidden 依然能横向滑动的问题。 不过添加了此事件
阅读全文
摘要:一直没注意到这个坑,今天看《你不知道的 JavaScript》中提到了,今后需要注意。
阅读全文
摘要:只需要先使用 JSON.stringify() 转成字符串,再通过 JSON.parse() 转成一个新的 JSON 对象即可。 注:此方法只针对简单的 JSON 对象,如果对象中含有函数,则不能使用此方法。JSON.stringify(..) 在对象中遇到值为 undefined、function
阅读全文
摘要:JS 中继承其实是种委托,而不是传统面向对象中的复制父类到子类,只是通过原型链将要做的事委托给父类。 下面介绍通过对象关联来实现『继承』的方法: Foo = { // 需要提供一个 init 方法来初始化参数,而不能通过构造函数来初始化参数了 init: function(who) { this.m
阅读全文
摘要:经测试得出 Ojbect.create() 也就是通过修改 __proto__ 实现的。 例:
阅读全文
摘要:Shared mutable state is the root of all evil(共享的可变状态是万恶之源) -- Pete Hunt 有人说 Immutable 可以给 React 应用带来数十倍的提升,也有人说 Immutable 的引入是近期 JavaScript 中伟大的发明,因为同
阅读全文
摘要:转自:https://segmentfault.com/a/1190000006100489 React: 一个用于构建用户界面的JAVASCRIPT库. React仅仅专注于UI层;它使用虚拟DOM技术,以保证它UI的高速渲染;它使用单向数据流,因此它数据绑定更加简单;那么它内部是如何保持简单高效
阅读全文
摘要:接收一个项目,由于目录结构的问题,每次编译完成后就需要去修改编译后的 HTML 文件中引用的其它文件的路径。 所以想在编译完成后使用 node 来操作文件修改路径。 然后在 webpack 官网找到了 ProgressPlugin 插件,使用方法: 编译过程中 percentage 会从0变到1,编
阅读全文
摘要:上面的代码,控制台输出2,说明 JavaScript 没有动态作用域,只有词法作用域。 函数在申明时就决定了它的作用域,而不是在调用时,这就导致函数在功能封装上要注意不要随意引用外部变量。 不过通过改变 this 可以一定缓解没有动态作用域的情形。 主要区别:词法作用域是在写代码或者说定义时确定的,
阅读全文