就比如要动态生成一个导航条,里面没有动态数据。但是就是太长了,所以在编辑器里为了换行就才用字符串拼接的方法。
没有动态数据怎么不直接写在html中呢,干嘛还要js生成?
你可以看下我以前写过关于html
复用的文章。利用一些模板引擎来做一些重复的事情。最后用自动化输出静态文件(有这个需求的话)。
转送门:HTML 代码复用实践
你如果单纯是为了展示上好看一些,可以拆分成一个数组,最后join起来。例如:
['<ul>', '<li>', ...].join('');
直接使用模板引擎渲染啊
用js模版引擎试试
用reactjs吧,直接生成DOM效率不高。或者把DOM内容做成隐藏层,要用的时候从隐藏提取。就是不应该拼接,可读性太差了。
这时候你应该考虑前端模版
<script type="text/tpl" id="nav-tpl">
<div id="nav">
...
</div>
</script>
<script>
(function () {
var navTpl = document.getElemntById('nav-tpl').innerHTML;
// do what you want.
})()
</script>
涉及到字符串拼接你可以考虑coffee-script,即使有动态数据也不怕,更去处引号和加号的烦恼
没有动态内容没必要 JS 生成吧,静态用 jade,动态语言的模板引擎那就太多了。
虽然现在 JS 越来越强大,但是就我个人观点来说,HTML、CSS、JS 各司其职才是最佳实践,非动态内容,直接 HTML 里面写死或者用后端语言提供的模板引擎不就好了。
既然没有动态数据,为什么不考虑写死在页面里?