摘要:
原理 computed 本质是一个惰性求值的订阅者。data 属性的 Observer 挂在 属性下,而 computed 属性挂在 下。而发布者 Dep 里存放了两个订阅者,而和computed相关的订阅者,其实只做了一件事情,标记 dirty 为 true,等待 get 时再真正计算。 comp 阅读全文
摘要:
测试例子 主要函数定义 716:Dep 发布者定义 767:Vnode 虚拟节点定义 922:Observer 劫持数据的函数定义 4419:Watcher 订阅者定义 5073:function Vue() 定义 数据劫持过程 Vue.prototype._init 中,在 后和 之前调用 ini 阅读全文
摘要:
使用 相似,`` 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在父组件链中。 当组件在 activated deactivated` 这两个生命周期钩子函数将会被对应执行。 原理 js / keep alive组件 / export default { name: 'keep ali 阅读全文
摘要:
背景 产品反馈表单页太卡了,这是一个有意思的情况,让我看看。 如图所见,当在 input 输入数据的时候,连续输入会感觉明显的延迟。 那个项目最多情况下,表单数量达到千数。笔者在 demo 里简化实现,并把表单数量提升到 10000,把下面的代码粘贴运行一边就能得到卡顿效果。 前置知识梳理 众所周知 阅读全文
摘要:
简介 上传是个老生常谈的话题了,多数情况下各位想必用的是uplodify,webUploader之类的插件,但近期团队定制组件的时候,笔者总觉得插件太重,许多功能用不到,那么就自己练手写了一个demo,并且支持图片拖拽排序。支持chrome 31及以上,IE就呵呵了。不过笔者的团队就是不用兼容IE, 阅读全文
摘要:
代码 阅读全文
摘要:
场景 以前见到过一个当你保存某表单成功后,显示倒计时并自动关闭页面的效果,现在终于轮到我来实现了。 不过这有何好说,直接调用下面的代码不就关闭了么? 然而,在最新的 chrome 浏览器上写上却是显示一个警告并且代码并不生效。 翻了好多资料却都于事无补。 close函数的限制 上面出现的警告信息我在 阅读全文
摘要:
能捕获的错误类型 语法错误 运行时异常 资源加载异常 img script link audio video iframe ...外链资源的DOM元素 异步请求异常 Promise异常 CSS中资源异常 font face background image 其他的暂时无法捕获 @font face 阅读全文
摘要:
简介 让使用不同编辑器的开发者在共同开发一个项目时“无痛”地遵循编码规范(编码风格),就可以使用EditorConfig插件,会在项目根目录寻找.editorconfig文件并使用其中定义的编码风格。 常用的编码规范 EditorConfig 支持的常用的编码规范,如下 charset:文件编码。可 阅读全文
摘要:
"eslint官网" 部分规则的中文解释如下: "no alert": 0,//禁止使用alert confirm prompt "no array constructor": 2,//禁止使用数组构造器 "no bitwise": 0,//禁止使用按位运算符 "no caller": 1,//禁止 阅读全文