xlsx-style 前端js导出带样式的excel 发表于 2020-01-03 前端导出excel 原来在项目中导出excel使用的是xlsx 库,使用中发现该库无法给要导出的excel添加样式(据说pro版可以,但并找到pro版  ̄□ ̄||),所以尝试了新的库xlsx-style,在使用xlsx-style库的过程中遇到了一下坑,特此记录一下📝 下载xlsx-style直接 ... 阅读全文 »
服务器端渲染(ssr) 发表于 2019-12-31 服务器端渲染什么是服务器端渲染将组件或页面通过服务器生成html字符串,再发送到浏览器,最后将静态标记”混合”为客户端上完全交互的应用程序。 服务器端渲染的优缺优势 利于SEO 加快首屏渲染 缺点 增大服务器端压力 开发受限(有的第三方库可能无法正常使用) 学习成本变高(node + koa2 等 ... 阅读全文 »
从 snabbdom 看虚拟dom 发表于 2019-12-20 Vue 的虚拟 DOM 方案衍生于snabbdom 工具,所以我们来看下snabbdom都做了什么 snabbdom只有200行的代码量,非常适合阅读。 snabbdom核心关注点关于虚拟DOM的实现以下几个核心内容是我们必须关注的: compile 将真实DOM编译为Vnode dif ... 阅读全文 »
proxy 发表于 2019-12-20 据悉 Vue 3.0 中将用 proxy 代替原来的Object.defineProperty() 来实现双向绑定 下面我们来了解下proxy: Proxy 对象用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等)。 语法 let p = new Proxy(target, hand ... 阅读全文 »
vue源码阅读(九) $mount 内部实现 --- patch 发表于 2019-10-14 patch将VNode转换成真实的node节点,需要通过patch函数来实现 在Vue.prototype._update的定义中有如下调用 1vm.$el = vm.__patch__(prevVnode, vnode) __patch__的定义如下:(platforms/runtime/inde ... 阅读全文 »
vue源码阅读(八) $mount 内部实现 --- render函数 --> VNode 发表于 2019-10-14 VnodeVNode 是 VDOM 中的概念,是真实 DOM 元素的简化版,与真实 DOM 元素是一一对应的关系。 1234567891011121314151617181920constructor { this.tag = tag //元素标签 this.data = data ... 阅读全文 »
vue源码阅读(七) mount【compile generate 生成render函数】 发表于 2019-10-12 12> const code = generate(ast, options)> generategenerate 函数(src/compiler/codegen/index.js)主要功能就是根据 AST 结构拼接生成 render function 的字符串。 123456789 ... 阅读全文 »
vue源码阅读(六)$mount 【compile optimize标记节点】 发表于 2019-09-12 1234> if (options.optimize !== false) {> optimize(ast, options)> }> optimize主要功能就是标记静态节点,为后面 patch 过程中对比新旧 VNode 树形结构做优化。被标记 ... 阅读全文 »
抽象语法树AST 发表于 2019-08-26 https://baijiahao.baidu.com/s?id=1626159656211187310&wfr=spider&for=pc 什么是语法树? 它是一种分层的程序表示,它根据编程语言的语法来表示源代码结构,每个AST节点对应于源代码的一个项。 如何从纯文本代码得到 ... 阅读全文 »
vue源码阅读(五) $mount 【compile parse函数生成AST】 发表于 2019-08-23 现在我们来看 vm.$options.render 是在哪里定义的? 在 entry-runtime-with-compiler.js中我们可以看到 1234567891011121314const options = this.$options....if (!options.render) ... 阅读全文 »