2013年11月11日
2013年11月1日
2013年10月30日
2013年10月29日
2013年8月25日
前端模板引擎现在已经被广泛应用于前端开发了,几乎每个项目都会使用。微博上甚至出现了“不写个模板引擎就没办法在前端界混了”的言论。当然,这是玩笑话,却也能在一定程度上反映前端模板的普及程度。如果你还没有了解过前端模板引擎,赶紧去补补课吧。
本文其实算不上是一篇讲模板引擎设计的文章,写这篇文章的动力来自于自己使用过一些模板引擎(jQuery Tmpl、jade、ejs、artTemplate以及ThinkPHP自带后端模板引擎)之后的心得,所以可能不会涉及到模板引擎设计的方方面面,更多地是讲模板引擎之间的一些有差异的细节以及我的思考和取舍。
var tempHtml = '<table>' +
' <tr>' +
' <th>Hello</th>' +
' <th>World</th>' +
' <th>!</th>' +
' </tr>' +
' <tr>' +
' <td>' + myData.col1 + '</td>' +
' <td>' + myData.col2 +'</td>' +
' <td>' + (myData.col3 === 'yes'?'!':'?') + '</td>' +
' </tr>' +
' </table>';
document.querySelector('#myDiv').innerHTML = tempHtml;
var tempHtml = '<table>' +
' <tr>' +
' <th>Hello</th>' +
' <th>World</th>' +
' <th>!</th>' +
' </tr>' +
' <tr>' +
' <td>' + myData.col1 + '</td>' +
' <td>' + myData.col2 +'</td>' +
' <td>' + (myData.col3 === 'yes'?'!':'?') + '</td>' +
' </tr>' +
' </table>';
document.querySelector('#myDiv').innerHTML = tempHtml;
相信上面的代码对哪怕做过一点点涉及界面开发的都应该很熟悉吧。当我们想把一段结构和一段数据组合起来,再放到页面上时,就会常常面临这样一段复杂的代码。
这段代码相信不用我说你也会觉得它实在有点复杂:要处理结构中字符串本身的拼接,还要注意结构与数据的拼接,处理数据拼接时还要注意运算优先级(尤其在使用?:
三元运算符时),还要为了可读性考虑纠结的缩进……
当然,最麻烦的还不是这里,当我们想要对一个数据循环遍历并输出时,居然还要自己去写循环,再一圈一圈地把这些结构拼起来,最后再拼上首尾的结构。而当数据为空时,又要自己去写一个“暂无数据”之类的占位符……
2013年7月9日
2013年6月8日
2013年5月2日
2013年4月22日
2013年4月18日
2013年4月17日
2013年3月4日