小程序通用转译框架娜娜奇1.0.4发布

2018-12-29
阅读 2 分钟
5.2k
娜娜奇在公司内部已经成功发布两个APP了,一个是支付宝小程序,一个是百度小程序,鉴于它已经好成熟了,我们决定提供更便捷的方式给普通用户使用,于是有了nanachi-cli。

useEffect与useLayoutEffect

2018-12-24
阅读 5 分钟
8k
React Hook让无狀态组件拥有了许多只有有狀态组件的能力,如自更新能力(setState,使用useState),访问ref(使用useRef或useImperativeMethods),访问context(使用useContext),使用更高级的setState设置(useReducer),及进行类似生命周期的阶段性方法(useEffect或useLayoutEffect)。

百度小程序遇到的问题

2018-12-05
阅读 1 分钟
2.5k
模板中的s-for指令不支持数组字面量以及带中括号的属性表达方式, s-for="{{ [1,2,3,4] }}"或s-for="{{aaa['xxx'] }}"

React v16.3.0: New lifecycles and context API

2018-03-30
阅读 4 分钟
6.3k
几天前,我们写了一篇关于即将到来的对我们的传统生命周期方法的变更的文章,包括逐步迁移策略。在React 16.3.0中,我们添加了一些新的生命周期方法来帮助迁移。我们还引入了新的API,用于长时间请求的特性:一个官方的上下文API、一个ref转发API和一个更语意化的ref API。

高性能迷你React框架 anu1.3.0 发布

2018-03-06
阅读 2 分钟
5k
自React16起,相继推出createContext,createPortal, createRef与createResource等新API,表明官方正积极由纯view库向大而全的框架演变,它将会越来越好用。一些迷你库可能跟不上步伐,现在也只有anujs有这实力跟进。

javascript 哈希表

2018-02-05
阅读 10 分钟
21.7k
哈希表(hash table )是一种根据关键字直接访问内存存储位置的数据结构,通过哈希表,数据元素的存放位置和数据元素的关键字之间建立起某种对应关系,建立这种对应关系的函数称为哈希函数

React16.2的fiber架构(2)

2018-02-03
阅读 16 分钟
5.2k
scheduleWorkImpl的最开头有一个recordScheduleUpdate方法,用来记录调度器的执行状态,如注释所示,它现在相当于什么都没有做

React16.2的fiber架构

2018-02-02
阅读 17 分钟
11.1k
在React16中,虽然也是通过JSX编译得到一个虚拟DOM对象,但对这些虚拟DOM对象的再加工则是经过翻天覆地的变化。我们需要追根溯底,看它是怎么一步步转换过来的。我们先不看什么组件render,先找到ReactDOM.render。在ReactDOM的源码里,有三个类似的东西:

javascript 前缀Trie

2018-01-27
阅读 7 分钟
7.6k
前缀Trie, 又叫字符Tire, trie来自单词retrieval, 一开始念作tree,后来改念try, 毕竟它与树是不一样的东西。网上许多文章都搞混了trie与树。 trie是通过”边“来储存字符的一种树状结构,所谓边就是节点与节点间的连接。trie每条边只能存放一个字符。

javascript 哈希树

2018-01-26
阅读 3 分钟
2.4k
n个不同的质数可以“分辨”的连续整数的个数和他们的乘积相等。“分辨”就是指这些连续的整数不可能有完全相同的余数序列。(这个定理的证明详见:[链接])

javascript 后缀数组

2018-01-26
阅读 7 分钟
5.3k
后缀数组是处理字符串的利器, 它本身涉及许多辅助概念. 基本概念 1.1子串 表示字符串的某一小段, 如awbcdewg拥有 awbc, awbcd, awbcde等子串。 1.2后缀 后缀是字符串从某个位置起到达末尾的一种特殊子串。后缀可以等于自身,相等于从一个字符开始. 假令我们设计一个取后缀的函数, 它可以这样实现: {代码...} 后缀必须...

计数排序,桶排序与基数排序

2018-01-21
阅读 9 分钟
10.1k
一般算法能做到O(logn),已经非常不错,如果我们排序的对象是纯数字,还可以做到惊人的O(n)。涉及的算法有计数排序、基数排序、桶排序,它们被归类为非比较排序。

javascript 最长公共子序列

2018-01-16
阅读 8 分钟
16k
最长公共子序列(Longest Common Subsequence LCS)是从给定的两个序列X和Y中取出尽可能多的一部分字符,按照它们在原序列排列的先后次序排列得到。LCS问题的算法用途广泛,如在软件不同版本的管理中,用LCS算法找到新旧版本的异同处;在软件测试中,用LCS算法对录制和回放的序列进行比较,在基因工程领域,用LCS算法检查...

高性能迷你React框架 anu1.2.2 发布

2017-12-29
阅读 1 分钟
2.9k
明年的精力就集中异步渲染与后端渲染上。anujs的体积经过几个版本的迭代,体积有所增大24kb(没有压缩的情况),但还是远远少于React+ReactDOM,因此无论用在移动端还是PC还是非常有优势。其次它是市场上唯一支持React16特征的库。

高性能迷你React框架 anu1.2.1 发布

2017-12-27
阅读 2 分钟
2.6k
anu1.2.1这次更新主要是改善了对焦点的处理及react16.2的Fragment语法糖的支持 优化fiberizeChildren的性能,将原方法内部用到函数与对象提到全局上来,这就比官方的对象池技术更能提升性能。 修复受控组件在textarea, radio的BUG,将受控事件放到用户事件后集中执行 添加焦点系统的支持 解决多次引入React时,事件系统...

React深度编程:受控组件与非受控组件

2017-12-17
阅读 5 分钟
11k
受控组件与非受控组件在官网与国内网上的资料都不多,有些人觉得它可有可不有,也不在意。这恰恰显示React的威力,满足不同规模大小的工程需求。譬如你只是做ListView这样简单的数据显示,将数据拍出来,那么for循坏与{}就足够了,但后台系统存在大量报表,不同的表单联动,缺了受控组件真的不行。

高性能迷你React框架 anu1.2 发布,支持React16的三大特性

2017-12-16
阅读 2 分钟
2.3k
anu已经有两个月没有发布了,经过1.1.5-pre, 1.1.5-pre2, 1.1.5-pre3, 1.1.5-pre4, 1.1.5-pre5, 1.1.5-pre6, 最终放弃了1.1.5, 改成1.2. 因为内部变动非常多,受控组件与非受控组件那块完全重写,只差一个case没有跑通(这部分的测试代码有2000多行)。支持React1.6 的三大特征,组件支持返回数组,传送门与错误边界。

preact的异步渲染

2017-10-21
阅读 4 分钟
2.7k
preact的性能听说是很快,这在于一个作弊机制,它需要更多时间才走完官方React 或 anu的任务。 {代码...} 注意,preact的对于组件虚拟DOM不会返回组件实例,需要hack一下。输出如下: {代码...}

高性能迷你React框架anujs1.1.4发布

2017-10-20
阅读 2 分钟
2.2k
本周在支持机票的项目中对anujs做了大量改进,包括性能上与结构上的改进。与1.1.3一样,还是差一个组件就完全兼容阿里的antd UI库。

高性能迷你React框架anujs1.1.3发布

2017-10-08
阅读 2 分钟
3.5k
anujs现在只差一个组件(mention)就完全支持阿里的antd UI库了。一共跑通346个测试, 应该是全世界最接近官方React的迷你框架了。

高性能迷你React框架anujs1.1.2发布

2017-10-01
阅读 2 分钟
3.7k
在ref机制,owner机制,虚拟DOM更新机制,context传递机制,SVG生成策略上大大重构。是有史以来最多的更新级。但工作还没有完成,只是怕更新太多做了一次短暂的休整。

去哪儿网迷你React的研发心得

2017-09-19
阅读 6 分钟
22.5k
去哪儿网迷你React是年初立项的新作品,在这前,去哪儿网已经深耕多年,拥有QRN(react-native的公司制定版),HY(基于React的hybird方案), yo(基于React的移动UI库),QRN-web(基于React的三端合一移植方案),此外,像机票等部门也大规模将React用于前台页面,后台页面就更不在话下。

avalon2.1.16发布

2016-10-10
阅读 1 分钟
3.4k
avalon2.1.16也是一个Fix BUG版本,没有增加任何新特征。不同的是内部源码已经全部用es6 modules重新编写了。之前使用nodejs风格的CommonJS编写,webpack进行合并。现在改成es6标准模块,rollup.js进行合并,再用webpack进行一些修改,框架的体积得到巨大的改善:

angular的ViewModel设计

2016-09-25
阅读 6 分钟
5k
angular的ViewModel有一个专门的官方术语叫$scope, 它只是一个普通构造器(Scope)的实例。换言之,它是一个普通的JS对象。为了实现MVVM框架通常宣传的那种“改变数据即改变视图”的魔幻效果,它得装备上更多更强大的外挂。

avalon的ViewModel设计

2016-09-25
阅读 5 分钟
3.2k
不是有了Object.defineProperty, Proxy或Reflect,放进一个对象就new出一个ViewModel出来。只能说,它们是必要条件。我们需要将要监听的属性变成访问器属性,所有访问器属性都是共用同一套setter, getter方法。getter里面做依赖收集(不是必须的),setter里做视图刷新或触发该属性的$watch回调。在此之前,我们需要完成一...

前端模板的原理与实现

2016-09-23
阅读 11 分钟
26.5k
前端框架最重要的目的是将页面渲染出来。“渲染”(render)这个词最初不是前端的东西的。前端之前叫做切图,将设计师做的PSD变成一个静态页面,然后加上动态交互。但是我们有许多数据是来自后端,如何将数据加入静态页面呢?于是又多了一套工序叫“套页面”。套页面的过程实际就是将静态页面变成切割成一块块,每一块都是一...

fetch polyfill 发布0.02版

2016-08-30
阅读 2 分钟
3.1k
avalon官方AJAX库fetch polyfill 发布0.02版,修复众多BUG。 [链接] 用法示例 {代码...} 安装fetch 库 {代码...} 运行例子 跑到koa目录下 {代码...} 浏览器下打开localhost: 4000

兼容IE6的fetch polyfill

2016-08-09
阅读 2 分钟
12.7k
react社区起来后,不满足现在的AJAX方案,搞了一个fetch。fetch只有在一些非常新的浏览器才支持,而github上的fetch却最多兼容到IE8,并且麻烦得要死,需要安装一大堆polyfill才能运行起来。

一步步编写avalon组件05:树组件

2016-08-06
阅读 4 分钟
5.3k
给人印象中,树组件是非常令人畏惧的一个组件,超级复杂,超级难写。但使用avalon2来做,这却是级其简单的一件事。首先从样式入做,无序列表是天然可用的树结构,几个UL元素套在一起,它们就自然处理好缩进问题。换言之,我们用UL元素作为树的节点,那么树组件内部也需要存在树组件,需要形成递归结构。avalon2的slot机...

一步步编写avalon组件04:GRID组件

2016-08-04
阅读 7 分钟
4k
grid组件(表格)是非常常用的组件,尤其是后台系统。它的制定也是五花八门的。因此jQuery有大量的grid组件,每个都庞大无比,集成各种功能,复杂得像Excel。但即便是这样,我们的产品经理总是能提出一些需求,让你死去活来。因此有时我们不需要一个功能丰富的grid,而是一个扩展性极好的grid。