摘要: 结构 subs里放置Watcher,当改变data数据时,触发对应的Dep通知其subs里的watcher进行更新。 代码 首先在 observer 的过程中会注册 get 方法,该方法用来进行「依赖收集」。在它的闭包中会有一个 Dep 对象,这个对象用来存放 Watcher 对象的实例。其实「依赖 阅读全文
posted @ 2020-03-21 20:42 Ever-Lose 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 原理 computed 本质是一个惰性求值的订阅者。data 属性的 Observer 挂在 属性下,而 computed 属性挂在 下。而发布者 Dep 里存放了两个订阅者,而和computed相关的订阅者,其实只做了一件事情,标记 dirty 为 true,等待 get 时再真正计算。 comp 阅读全文
posted @ 2020-03-21 20:41 Ever-Lose 阅读(2884) 评论(0) 推荐(0) 编辑
摘要: 测试例子 主要函数定义 716:Dep 发布者定义 767:Vnode 虚拟节点定义 922:Observer 劫持数据的函数定义 4419:Watcher 订阅者定义 5073:function Vue() 定义 数据劫持过程 Vue.prototype._init 中,在 后和 之前调用 ini 阅读全文
posted @ 2020-03-21 20:32 Ever-Lose 阅读(983) 评论(0) 推荐(0) 编辑
摘要: 使用 相似,`` 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在父组件链中。 当组件在 activated deactivated` 这两个生命周期钩子函数将会被对应执行。 原理 js / keep alive组件 / export default { name: 'keep ali 阅读全文
posted @ 2020-03-21 20:27 Ever-Lose 阅读(5773) 评论(0) 推荐(0) 编辑
摘要: 背景 产品反馈表单页太卡了,这是一个有意思的情况,让我看看。 如图所见,当在 input 输入数据的时候,连续输入会感觉明显的延迟。 那个项目最多情况下,表单数量达到千数。笔者在 demo 里简化实现,并把表单数量提升到 10000,把下面的代码粘贴运行一边就能得到卡顿效果。 前置知识梳理 众所周知 阅读全文
posted @ 2020-03-21 20:26 Ever-Lose 阅读(1614) 评论(0) 推荐(0) 编辑
摘要: 简介 上传是个老生常谈的话题了,多数情况下各位想必用的是uplodify,webUploader之类的插件,但近期团队定制组件的时候,笔者总觉得插件太重,许多功能用不到,那么就自己练手写了一个demo,并且支持图片拖拽排序。支持chrome 31及以上,IE就呵呵了。不过笔者的团队就是不用兼容IE, 阅读全文
posted @ 2020-03-21 20:20 Ever-Lose 阅读(32123) 评论(0) 推荐(3) 编辑
摘要: 代码 阅读全文
posted @ 2020-03-21 20:18 Ever-Lose 阅读(3354) 评论(2) 推荐(1) 编辑
摘要: 场景 以前见到过一个当你保存某表单成功后,显示倒计时并自动关闭页面的效果,现在终于轮到我来实现了。 不过这有何好说,直接调用下面的代码不就关闭了么? 然而,在最新的 chrome 浏览器上写上却是显示一个警告并且代码并不生效。 翻了好多资料却都于事无补。 close函数的限制 上面出现的警告信息我在 阅读全文
posted @ 2020-03-21 20:16 Ever-Lose 阅读(2118) 评论(0) 推荐(0) 编辑
摘要: 能捕获的错误类型 语法错误 运行时异常 资源加载异常 img script link audio video iframe ...外链资源的DOM元素 异步请求异常 Promise异常 CSS中资源异常 font face background image 其他的暂时无法捕获 @font face 阅读全文
posted @ 2020-03-21 12:34 Ever-Lose 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 简介 让使用不同编辑器的开发者在共同开发一个项目时“无痛”地遵循编码规范(编码风格),就可以使用EditorConfig插件,会在项目根目录寻找.editorconfig文件并使用其中定义的编码风格。 常用的编码规范 EditorConfig 支持的常用的编码规范,如下 charset:文件编码。可 阅读全文
posted @ 2020-03-21 11:43 Ever-Lose 阅读(4416) 评论(0) 推荐(0) 编辑
摘要: "eslint官网" 部分规则的中文解释如下: "no alert": 0,//禁止使用alert confirm prompt "no array constructor": 2,//禁止使用数组构造器 "no bitwise": 0,//禁止使用按位运算符 "no caller": 1,//禁止 阅读全文
posted @ 2020-03-21 11:41 Ever-Lose 阅读(2536) 评论(0) 推荐(0) 编辑
摘要: 简介 makefile 原来是C语言作为工程化处理的一个实用工具,然后慢慢的迁移到其他平台上了,而在工作中看到的确也有使用 makefile 来集成一些命令的功用。 基本格式 target就是你要执行的命令套件,prerequisties就是依赖,而command就是实际执行的命令, 必须注意:必须 阅读全文
posted @ 2020-03-21 11:39 Ever-Lose 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 在线 在线校验工具:http://regex.zjmainstay.cn/ 速查表 原链接:http://www.jb51.net/shouce/jquery1.82/regexp.html reg Description \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八 阅读全文
posted @ 2020-03-21 11:33 Ever-Lose 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 原理 path标签拥有两个属性:stroke dasharray,stroke dashoffset。 stroke dasharray 前一个数值表示dash,后一个数字表示gap长度(只写单个值表示dash/gap尺寸一致),往复循环; stroke dashoffset 虚线开始时的偏移长度, 阅读全文
posted @ 2020-03-21 11:28 Ever-Lose 阅读(901) 评论(0) 推荐(0) 编辑
摘要: 简介 近日业务需要,特来钻研一阵,最后选型svg技术实现,因为方便。 实现步骤 一、先画一圆环 定义让外层容器为宽高110px的正方形,并且定义在容器的中心处(cx="50%"" cy="50%")画半径为50px的圆(r="50"),圆的内容不着色(fill="none")。描边为10px,着描边 阅读全文
posted @ 2020-03-21 11:16 Ever-Lose 阅读(2221) 评论(0) 推荐(0) 编辑