avalon2.1.16发布

2016-10-10
阅读 1 分钟
3.5k
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变成一个静态页面,然后加上动态交互。但是我们有许多数据是来自后端,如何将数据加入静态页面呢?于是又多了一套工序叫“套页面”。套页面的过程实际就是将静态页面变成切割成一块块,每一块都是一...

avalon2.1.15发布

2016-09-19
阅读 1 分钟
2.3k
一. xmp, wbr, template可以直接使用is属性代替ms-widget来申明组件类型。想当于把原来的is配置项提了出来。 如果还要申明其他配置项,还是需要ms-widget配置对象。

avalon2最佳实践

2016-09-18
阅读 2 分钟
6.5k
3 不要动态添加新页面。比如你用想用$(id).append(newHTML)在某元素底下加一些东西,这个不起作用,又会逼使你再次用avalon.scan。这就违背第二条规则了。最好使用ms-html代替。