摘要:
文章在 "github" 开源, 欢迎 Fork 、Star ! 前言 "Immer" 是 mobx 的作者写的一个 immutable 库,核心实现是利用 ES6 的 proxy,几乎以最小的成本实现了 js 的不可变数据结构,简单易用、体量小巧、设计巧妙,满足了我们对JS不可变数据结构的需求。 阅读全文
摘要:
实现类的多继承,最大化的实现代码的复用,这就是mixin配合class能够发挥的实力 阅读全文
摘要:
Axios源码分析 XHR篇 文章源码托管在 "github" 上,欢迎fork指正! "axios" 是一个基于 Promise 的http请求库,可以用在浏览器和node.js中,目前在github上有 42K 的star数 备注: 1. 每一小节都会从两个方面介绍:如何使用 源码分析 2. [ 阅读全文
摘要:
1 // 1) 调用方式 2 new People('whr').sleep(3).eat('apple').sleep(5).eat('durian'); 3 4 // 2) 打印结果 5 'hello, whr' -(等待3s)--> 'whr eat apple' -(等待5s)--> 'whr eat durian' 6 7 // 3) 以下是代码实现 8 c... 阅读全文
摘要:
1 /** 2 * 数字转为千分位字符 3 * @param {Number} num 4 * @param {Number} point 保留几位小数,默认2位 5 */ 6 function parseToThousandth(num, point = 2) { 7 let [sInt, sFloat] = (Number.isInteger(num) ? `$... 阅读全文
摘要:
1 function template(tpl, data) { 2 return tpl.replace(/{{(.*?)}}/g, (match, key) => data[key.trim()]); 3 } 4 5 // 使用: 6 template('我是{{name}},年龄{{age}},性别{{sex}}', {name: '王海荣', age: 18, sex: '男'... 阅读全文
摘要:
-> 浏览器解析 -> 查询缓存 -> dns查询 -> 建立链接 -> 服务器处理请求 -> 服务器发送响应 -> 客户端收到页面 -> 解析HTML -> 构建渲染树 -> 开始显示内容(白屏时间) -> 首屏内容加载完成(首屏时间) -> 用户可交互(DOMContentLoaded) -> 加载完成(load) 阅读全文
摘要:
1 function compose(...funcs) { 2 if (funcs.length === 0) { 3 return arg => arg 4 } 5 if (funcs.length === 1) { 6 return funcs[0] 7 } 8 return funcs.reduce((a, b) => (...args) => a... 阅读全文
摘要:
Q:在A项目的a页面嵌入一个iframe,src是B项目的b页面,怎样让a页面的高度跟b页面的高度一样? A:解决跨域方案:增加一个A项目的c页面。 操作步骤: 一,a页面的iframe设置: 获取到当前域名,作为参数设置到src上 二,b页面页脚增加以下代码:通过location拿到a页面的域名, 阅读全文
摘要:
说明: 本文章主要分为ES5和ES6两个版本 ES5版本是早期版本,后面用ES6重写优化的,建议使用ES6版本。 1, 原生js实现canvas气泡冒泡效果的插件,api丰富,使用简单2, 只需引入JumpBubble.js一个js文件即可 项目源码地址: https://github.com/ro 阅读全文