文档章节

Javascript“模板引擎”Pjt

艾恩
 艾恩
发布于 2017/08/02 23:33
字数 359
阅读 142
收藏 0

    做.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里面都有说明。

http://git.oschina.net/moasp/PithyJt/wikis/home

© 著作权归作者所有

艾恩
粉丝 4
博文 3
码字总数 874
作品 1
杭州
程序员
私信 提问
加载中

评论(1)

喻恒春
喻恒春
嗨,
如果你希望模板在浏览器中运行, 向你推荐 Real-DOM 模板引擎 PowJS, 工作在浏览器环境, 直接在 DOM Tree 上编译, 渲染, 可导出导入. DOM Tree 就是模板.

https://github.com/powjs/powjs
Pinterest 转向通用 JavaScript 和 React

在2015年,Pinterest决定转向React。但是对于一个有数百万活跃用户的站点来说,谈何容易。Pinterest转向React的故事本质上是Pinterest转向通用JavaScript的故事。 Pinterest的软件工程师Ima...

达尔文
2016/12/08
1K
1
高性能JavaScript模板引擎原理解析

本文将用最简单的示例代码描述现有的 javascript 模板引擎的原理,包括新一代 javascript 模板引擎 artTemplate 的特性实现原理,欢迎共同探讨。 artTemplate 介绍 artTemplate 是新一代 ja...

李朝强
2013/07/29
0
0
🛠️Hanjst/汉吉斯特更新加JavaScript运行时优化等

这是 Hanjst/汉吉斯特 发布以来的首个主要升级更新版本。这次的主要升级更新的内容包括移除HTML Comments注释行, 优化在 Hanjst include模板文件时的JavaScript运行时环境。 Hanjst 在设计和...

wadelau
01/19
0
0
13 款 JavaScript 模板引擎

JavaScript 在生成各种页面内容时如果能结合一些模板技术,可以让逻辑和数据之间更加清晰,本文介绍 X 款 JavaScript 的模板引擎。(排名不分先后顺序) 1. Mustache 基于javascript 实现的模...

红薯
2012/04/15
16.2K
5
javascript引擎在c,c+中调用

JavaScript是一种广泛用于Web客户端开发的脚本语言,常用来控制浏览器的DOM树,给HTML网页添加动态功能。目前JavaScript遵循的web标准的是ECMAScript262。由于JavaScript提供了丰富的内置函数...

crossmix
2015/04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql mysql常用的数学函数

1. 数学函数 函 数 作 用 ABS(x) 返回x的绝对值 CEIL(x),CEILIN(x) 返回不小于x的最小整数值 FLOOR(x) 返回不大于x的最大整数值 RAND() 返回0~1的随机数 RAND(x) 返回0~1的随机数,x值相同返...

edison_kwok
27分钟前
0
0
译:Spring Data Repository 不区分大小写查询

使用Spring Data Repository 不区分大小写查询 原文链接:https://www.baeldung.com/spring-data-case-insensitive-queries 作者:Shubhra Srivastava 译者:liululee 1. 概览 Spring Data ......

liululee
34分钟前
0
0
读书replay《maven实战》.1.20190526

前情提要 maven这个工具用了好久了,但是一直都用的迷迷糊糊的,没有对它进行过系统性的学习,只是知道一些常用的功能怎么实现,所以20190516这一天我从JD购买了徐晓斌老师所著的《maven实战...

wanxiangming
49分钟前
0
0
真实项目案例实战——【状态设计模式】使用场景

什么是状态模式 状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。 状态模式应用场景 1.一个对象的行为取决于它的状态,并且它必须在运行时刻根...

须臾之余
55分钟前
1
0
Java 实现把字符串转换成整数【底层实现】

https://blog.csdn.net/zl18310999566/article/details/80263396

qimh
59分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部