分享一个下午做的avalon-webpack-spa,算是avalon工程化的一个示例吧
发布于 1 个月前 作者 wandergis 363 次浏览 来自 分享

不知道cnode有没有人在使用avalon?

avalon与webpack写单页面应用

学习和使用avalon已经一个多月了,中间历经坎坷,踩坑跳坑,也算是积累了一些avalon的相关实践的经验. 趁着项目结束,终于有闲暇实践来整理和沉淀这些知识.

至于avalon是什么,百度知乎都有说明,是去哪儿的司徒正美写的一个兼容IE6+的MVVM框架

这是一个集成了avalon jquery gulp webpack mmstate的偏工程化的一个单页面应用项目模板,使用mmState管理路由,支持异步加载和打包,替换oniui的avalon和avalon.shim版本为1.4.7.1,目前热替换部分还有一些问题,等以后再解决了.

在线访问

项目主页

使用方法

注意事项

  1. mkdir demo && cd demo && git clone https://github.com/wandergis/avalon-webpack-spa.git

  2. npm install 确保安装了node,及全局安装了gulp和webpack,复制webpack-amdcss-loader中的amdcss-loader目录到node_modules目录下,切记切记

  3. gulp 或者 npm start

效果截图

关于ie8的兼容问题

  1. ajax在低版本ie下默认会从缓存读取,需要加上对应的时间戳,直接在avalon.ajax的请求配置的cache设置为false
  2. 需要取vm的值的情况下请使用vm的$model属性
  3. 数组的增加和获取长度请使用pushArraysize
  4. 不要直接定义data:{}然后给data动态增加属性,不要过多的嵌套
  5. oniui的分页控件在数据获取之后再设置,否则ie8下面不出现
  6. 验证控件的异步问题,将逻辑写在validationVM.validateAll的验证成功的方法中
  7. 绑定下拉框的数据获取,只需要select的绑定的对象的值
  8. 使用oniui最好使用1.4.7版本的avalon,解决了光标和下拉联动的问题

参考文章

5 回复

只想说,司徒大神兼容IE6+真是很屌

@reverland 是啊,学了angular之后,就再也不想再操作dom了,苦于项目要支持低版本ie,看到avalon简直就是眼前一亮啊

回到顶部