做.net的时候,用MVC接触了Razor,觉得语法简单,写作轻松。这几天就模仿Razor的语法写了个Javascript版本的,由于写了一些基本的语法检查,代码大约有600行左右。
没有相关的编译原理经验,就给标题加了双引号,哈哈,在专业人士面前班门弄斧了。
至于写这个东西的意义,网上很多模板引擎,很多人说自己再早轮子,没必要。
其实对于我来说,比较喜欢钻研Javascript,还有就是在项目中有一个得心应手的工具,方便快速开发。
个人造的轮子也不少了,不差这一个,哈哈。本项目里面的ajax也是,自己写过2、3个版本的ajax了吧,有时候只是想简单的执行个请求,不想再去引用某个大型的框架,例如jQuery。
本项目地址:http://git.oschina.net/moasp/PithyJt
使用方法也很简单,最基本的不借助Helper的用法:
var data = {
name : 'anlige',
age : 23
};
//编译
var contents = Pjt.compile('<a>name = @name, age = @age</a>');
//渲染
console.log(Pjt.render(contents, data));
也有一些快捷方法,借助Helper
PjtHelper.compile('<a>@name</a>')
.render({name : 'anlige'})
.appendTo('result');
还有更加单的bind方法,两种方法效果一样:
PjtHelper.bind({name :'anlige'}, 'template', 'result');
PjtHelper.bind({name :'anlige'}, 'template', function(res){
document.getElementById('result').innerHTML = res;
});
不搬代码了,wiki里面都有说明。