=如题,本人是前端菜鸟,考虑到学习成本和模版版本稳定等问题,希望大家能给一些意见,ng学习成本太高且越来越臃肿了,如:vue.js、jquery.tmpl.js, AceTemplate.js , EasyTemplate Yaya Templat等,项目只要一个功能就是在页面打开是用AJAX从后台请求的JSON数据对应添加到DOM中,就是所谓的数据双向绑定功能就可以了,(所谓的MVVM框架)其他用户操作还是要用JQ。
如下是知乎上看到的:
angularjs:google出品,思想来自flex,IoC, 脏检测,自定义标签,受限于绑定数量,一般不能超过2000个,入门容易上手难,大量避不开的概念
emberjs:原来是苹果公司的内部项目,使用Object.defineProperties, 体型庞大,MVVM只是其很少一部分
knockoutjs:微软出品,使用函数偷龙转凤,最短编辑长度算法实现DOM的同步,兼容IE6,实现高超,但源码极其难读
winjs:微软出品,使用Object.defineProperties,一个庞大的UI库
react:facebook出品,带来virtual dom的革命性概念,受限于视图的规模
rivets:API比较精致
way:使用定时间同步
vue:使用Object.defineProperties实现同步,实现精致,但功能薄弱
regular:最近一个月才冒出来的新东西,网易推出的JS框架,自称AngularJS与React的合体
drop:在知乎又刚刚听说一个,用TypeScript写的
如果有最新的模版也可以提出来,请大家不惜赐教。
用AJAX从后台请求的JSON数据对应添加到DOM中
这是模版渲染,而绝非“双向数据绑定”或MVVM
题主列的多数都是MVVM,双向数据绑定,对于只需要模版渲染的场合来说,可以说是overkill
单纯的模版渲染库知名的有
- underscore或更好的lodash
- EJS语法(
<%code%>
执行和<%=xxx%>
输出,没了) 学习成本无法更小 - 如果不要其他功能,可以选择lodash(允许只包含要用的部分),或者自己删减underscore
- EJS语法(
- mustache系,包括mustache, hogan, handlebar等等
- 特点是"Logic-less",强调模版中无逻辑,增强模版的可移植性
- 有时这个特点有些碍手碍脚,但相对很容易实现前后台统一渲染逻辑
- swig
- 和Djange,Liquid,Twig等等是一家人
- 和Djange,Liquid,Twig等等是一家人
- 别的好像真没啥……
上述模版引擎多数都有编译能力,也就是可以在开发部署的时候编译好,减轻用户浏览器的压力,这对移动端来说可能很重要
真的特别喜欢MVVM(比如有很多表单逻辑要处理之类),这里推荐一个体积异常小但相对功能丰富的RiotJS。1.0是个router+eventemitter+template,2.0追加了MVVM能力,还是保持着娇小的身材
lodash,handlebars都是首选
你要是模板,而不是框架啊。所以知乎上看到跟你要的完全不搭边。
模板推荐handlebars,喜欢大括号语法。
推荐一下doT.js
做过类似的东西
自己用的是Backbone + jQuery(zepto) + Underscore + RequireJS
- Backbone 轻量级,支持jquery,自带路由,对象化视图,强大的sync机制减少页面大小从而加快页面显示。
- jQuery jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。不过主要是jQuery能够使用户的html页面保持代码和html内容分离,只需定义id即可。
- Underscore是Backbone的依赖库 Underscore 是一个JavaScript实用库,提供了类似Prototype.js的一些功能,但是没有继承任何JavaScript内置对象。
- RequireJS 你可以顺序读取仅需要相关依赖模块。
自己做的demo的地址: https://github.com/phodal/moqi.mobi