使用Dust.js进行客户端模板化的基本示例

 mobiledu2502860837 发布于 2023-01-31 13:20

这是我第一次涉足客户端模板,我想确保我理解并正确使用它.阅读这篇LinkedIn工程博客后,我决定选择dust.js而不是小胡子把手.请注意,这个stackoverflow帖子回答了我的许多问题,但我仍然有一些我想澄清的事情.

在我工作的环境中,我无法访问服务器端的任何内容,因此我创建的所有内容都必须能够完全在客户端的浏览器中运行.对于此示例,我将尝试从LinkedIn Dust Tutorial重新创建此代码示例.

我包括dust-full.js而不是dust-core.js因为我要动态编译模板:


这是HTML:



和JavaScript(使用jQuery):

$(document).ready(function () {
    var data = {
        "title": "Famous People", 
        "names" : [{ "name": "Larry" },{ "name": "Curly" },{ "name": "Moe" }]
    }

    var source   = $("#entry-template").html();
    var compiled = dust.compile(source, "intro");
    dust.loadSource(compiled);

    dust.render("intro", data, function(err, out) {
        $("#output").html(out);
    });
});

这似乎工作正常,你可以在这个jsfiddle中看到.

几个问题:

    为什么模板应包含在脚本标记中?为什么不将它包含在id ="entry-template"的div中,然后在dust.render()中替换html,就像在这个修改过的小提琴中一样

    什么" dust.loadSource(编译); "做什么?它在文档中"如果你将'编译'字符串作为你加载的JS脚本块的一部分,那么'intro'模板将被定义和注册.如果你想立即执行它,那么"调用它,但我不明白这意味着什么.我注意到,如果我删除该行然后它不起作用,所以我想理解它.

    在我对我的模板感到满意并最终确定之后,我应该如何编译它以便导入较轻的dust-core.js而不是在每次加载页面时由浏览器编译?这样做是否有显着优势,或者我应该像dust-full.js一样离开?

    更一般地说,这看起来像是一个适当/有用的方法来实现灰尘(或任何模板框架)或我离开某处?

提前致谢.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有