美文网首页web前端
doT.js 模板引擎

doT.js 模板引擎

作者: Sean_Shi | 来源:发表于2017-04-27 14:18 被阅读4281次

介绍

一个适用于混合开发的模板引擎
最近在做一个Apicloud的webApp,使用了Apicloud提供的api.js和doT.js

1.特点是快,小,无依赖其他插件,可适用于webApp
2.常用语法

{{ }}     for evaluation 模板标记符
{{= }}    for interpolation 输出显示,默认变量名叫it
{{! }}    for interpolation with encoding 编码后输出显示
{{? }}    for conditionals 条件分支,if条件的简写
{{~ }}    for array iteration 遍历数组
    
//使用步骤
数据源  : json
模板 :   数据显示的格式
区域 :   数据显示的位置
调用方试 : 填充数据

3.在Safari模板引擎渲染速度测试

模板引擎渲染速度测试
4.doT.js框架下载链接 https://github.com/olado/doT

示例

1.模板

    <!--赋值-->
    <script id="interpolationtmpl" type="text/x-dot-template">
        <div>{{=it.name}}</div>
        <div>dot框架</div>
    </script>
    <!--循环map-->
    <script id="evaluationtmpl" type="text/x-dot-template">
        {{ for(var prop in it) { }}
        <div>键:{{= prop }}对应的值:{{= it[prop] }}</div>
        {{ } }}
    </script>
    <!--数组-->
    <script id="arraystmpl" type="text/x-dot-template">
        {{~it.interests:value:index}}
        <div>下标:{{= index }}对应的值:{{= value }}!</div>
        {{~}}
    </script>
    <!--条件-->
    <script id="conditionstmpl" type="text/x-dot-template">
        {{? it.name }}
        <div>name存在时走到这里, {{=it.name}}!</div>
        {{?? !it.age === 0}}
        <div>age等于零时走到这里!</div>
        {{??}}
        You are {{=it.age}}
        {{?}}
    </script>

2.区域(最终显示的位置)

    <div>
        ------赋值------
    </div>
    <div id="interpolation"></div>
    <div>
        ------循环------
    </div>
    <div id="evaluation"></div>
    <div>
        ------数组------
    </div>
    <div id="arraysation"></div>
    <div>
        ------条件------
    </div>
    <div id="condition"></div>

3.数据源与调用方式

    <script>    
            /**
             *  数据源  赋值
             */
            var dataInter = {
                "name" : "shuangqi1991",
                "age" : 88
            };
            //调用方式
            var interText = doT.template($api.text($api.byId('interpolationtmpl')));
            $api.html($api.byId('interpolation'), interText(dataInter));
            /**
             * 数据源 数组
             */
            var dataEval = {
                "name" : "shuangqi1991",
                "age" : 88,
                "interests" : ["basketball", "hockey", "photography"],
                "contact" : {
                    "email" : "shuangqi1991@qq.com",
                    "phone" : "999999999"
                }
            };
            //调用方式
            var evalText = doT.template($api.text($api.byId('evaluationtmpl')));
            $api.html($api.byId('evaluation'), evalText(dataEval));
            /**
             *  数据源 数组
             */
            var arrEval = {
                "interests" : ["basketball", "hockey", "photography"]
            };
            //调用方式
            var arrText = doT.template($api.text($api.byId('arraystmpl')));
            $api.html($api.byId('arraysation'), arrText(arrEval));
            /**
             *  数据源 条件
             */
            var dataCondition = {
                "name" : "ss",
                "age" : 2
            };
            
            //调用方式
            var conText = doT.template($api.text($api.byId('conditionstmpl')));
            $api.html($api.byId('condition'), conText(dataCondition));
        </script>

说明:

亲测在模板里{{= XXX}}、或者{{? XXX}}、即在"{{}}"内是可以直接使用全局变量以及方法名、 以及运算符
1.比如 {{= hostUrl + it.imageUrl}} 这里的hostUrl 为一个全局变量
2.{{= sayHello() }}这里sayHello()是一个有返回值的方法
3.使用三目运算符 {{? it.open ? "true":"false"}} 则条件真的时候返回true, 假的时候返回false

相关文章

  • 必须掌握的前端模板引擎之art-template

    常用的模板引擎有tpl.js、baiduTemplate、doT.js、art-template等等; 我所理解的...

  • doT.js 模板引擎

    介绍 一个适用于混合开发的模板引擎最近在做一个Apicloud的webApp,使用了Apicloud提供的api....

  • doT.js 模板引擎

    介绍 1.特点是快,小,无依赖其他插件,可适用于webApp2.常用语法 3.在Safari模板引擎渲染速度测试 ...

  • 模板引擎dot.js

    一、基本符号 二、调用方式 三、实例 实例1 for interpolation 赋值 数据源: 区域: 模板: ...

  • doT.js 模板引擎

    doT.js详细使用介绍 使用方法: 调用方式: 例子一: 1、for interpolation 赋值 格式: ...

  • 前端模板引擎doT.js的使用

    前言 我们在做前端开发时,经常需要根据后台返回的json数据动态生成html并插入到页面中显示。最简单的方法就是通...

  • DoT.js前端模板引擎使用方法

    一键获取doT.jsdoT.js演示说明文档JavaScript 模板引擎作为数据与界面分离工作中最重要一环,越来...

  • laravel 5 blade

    参考Blade 模板引擎。Blade是一个模板引擎(什么叫模板引擎,参考浅谈模板引擎),文件需要采用blade.p...

  • SpringBoot系列之集成jsp模板引擎

    SpringBoot系列之集成jsp模板引擎@[toc] 1、模板引擎简介 引用百度百科的模板引擎解释: 模板引擎...

  • node_模板引擎

    模板引擎 模板引擎的使用和集成,也就是视图。 什么是模板引擎模板引擎是一个页面模板根据一定得规则生成的html工具...

网友评论

本文标题:doT.js 模板引擎

本文链接:https://www.haomeiwen.com/subject/klogzttx.html