zoukankan      html  css  js  c++  java
  • Juicer 轻量级javascript模板引擎

    juicer是一个javascript轻量级模板引擎。

    使用方法

    编译模板并根据数据立即渲染出结果  

    1 juicer(tpl, data);

    仅编译模板暂不渲染,返回一个可重用的编译后的函数

    1  var compiled_tpl = juicer(tpl);

    根据给定的数据对之前编译好的模板进行渲染

    1 var complied_tpl = juicer(tpl);
    2 var html = complied_tpl.render(data);

    注册/注销自定义函数(对象)

    1 juicer.register(‘function_name’, function);
    2 juicer.unregister(‘function_name’);

    默认参数配置

    1 {
    2      cache: true [false];
    3      script: true [false];
    4      error handling: true [false];
    5      detection: true [false];
    6 }

    修改默认配置,逐条修改

    1 juicer.set('cache', false);

    修改默认配置,批量修改

    1 juicer.set({
    2           'script': false,
    3           'cache': false
    4 })

    Juicer 默认会对编译后的模板进行缓存,从而避免同一模板多次数据渲染时候重复编译所耗的时间, 如无特殊需要,强烈不建议关闭默认参数中的 cache,这么做将会令 Juicer 缓存失效从而降低性能.

     *注释 {# 注释内容}

    {# 这里是注释内容}
    

    * 转义/避免转义

    ${变量} 在输出之前会对其内容进行转义,如果你不想输出结果被转义,可以使用 $${变量} 来避免这种情况。

    var json = {
    value: '<strong>juicer</strong>'
    };

    var escape_tpl='${value}';
    var unescape_tpl='$${value}';

    juicer(escape_tpl, json); //输出 '&lt;strong&gt;juicer&lt;/strong&gt;'
    juicer(unescape_tpl, json); //输出 '<strong>juicer</strong>'

    *循环遍历 {@each} ... {@/each}          
         - 遍历数组,${index}当前索引

    {@each list as item, index}
            ${item.prop}
           ${index} //当前索引
    {@/each}

     

    一个完整的例子 

    HTML 代码:

    <script type="text/template" id="provinceScript">
    <option value="">请选择</option>
    <{each province as it}>
    <option value="<{$it.id}>"><{$it.province}></option>
    <{/each}>
    </script>

    Javascript 代码:

    var shtml = $('#provinceScript').html();
    var svalue = juicer(shtml,reg);
    $('select[name=province]').html(svalue);

  • 相关阅读:
    深入理解Java容器——HashMap
    深入理解Java并发容器——ConcurrentHashMap
    String、StringBuilder和StringBuffer的比较
    接口类、抽象类和普通类的区别
    跟我一起学算法——二项堆
    跟我一起学算法——分治法
    跟我一起学算法——动态规划
    跟我一起学算法——斐波那契堆
    Redis操作三部曲:SpringBoot2.0.X集成Redis + Redis分布式锁 + RedisCacheManager配置
    SpringBoot使用Redis做集中式缓存
  • 原文地址:https://www.cnblogs.com/blog-dyn/p/6758077.html
Copyright © 2011-2022 走看看