博客
关于我
【Vue源码】mustache模板引擎 - 基本使用 - 底层原理 - 手写实现
阅读量:559 次
发布时间:2019-03-09

本文共 1441 字,大约阅读时间需要 4 分钟。

模板引擎概述与Mustache实践

1. 模板引擎的基本概念

模板引擎是一种将数据(Dynamic Data)转化为视图(View)、即HTML的高效解决方案。其核心任务是通过定义模板,实现数据与视图的动态绑定,使开发者能够简化页面构建和维护工作。数据的渲染过程通常采用双向绑定模式,确保页面能够及时响应数据的变更。

模板引擎的主要工作原理可以概括为以下几个方面:

  • 解析模板标记,识别数据占位符
  • 根据数据源,生成对应的视图内容
  • 维护视图与数据的动态关联,支持数据的增删改查操作
  • 模板引擎的应用场景广泛,包括Web开发中数据列表展现、动态内容绑定、用户界面生成等。

    2. Mustache模板引擎的简介

    Mustache(胡子),最初由.spawn开发,是最早的模板引擎库之一,以其独特的语法和创造性著称。Mustache的主要特点包括高效 Rendering、灵活的模板语法以及良好的扩展性。

    Mustache的模板语法规则如下:

    • 使用双大括号{{}}表示占位符
    • 未加逻辑符号的占位符将自动转换为字符串
    • 具有逻辑符号的占位符需要用{{#key}}表示开始,{{/key}}表示结束
      例如,{{#arr}} 会表示与数组arr相关联的占位符
    • 支持多层嵌套,必须使用正确的键符号分隔符

    Mustache的基本使用示例

    预设数据如下:

    {  thing: '华为手机',  mood: '开心'}

    模板字符串如下:

    我买了一个{{thing}},好{{mood}}啊

    模板渲染结果如下:

    我买了一个华为手机,好开心啊

    循环数组的应用示例

    模板字符串:

      {{#arr}}
    • {{name}}的信息
    • {{/arr}}

    数据数组:

    [  { name: '小明', age: 12 },  { name: '小红', age: 11 },  { name: '小强', age: 13 }]

    渲染结果:

    • 小明的信息
    • 小红的信息
    • 小强的信息

    循环对象数组的应用示例

    模板字符串:

      {{#students}}
    • {{name}}的爱好是:
        {{#hobbies}}
      1. {{}}
      2. {{/hobbies}}
    • {{/students}}

    数据:

    students: [  { name: '小红', hobbies: ['羽毛球', '跆拳道'] },  { name: '小明', hobbies: ['足球'] },  { name: '小王', hobbies: ['魔术', '学习', '游戏'] }]

    渲染结果:

    • 小红的爱好是:
      1. 羽毛球
      2. 跆拳道
    • 小明的爱好是:
      1. 足球
    • 小王的爱好是:
      1. 魔术
      2. 学习
      3. 游戏

    Mustache的优势与局限性

    Mustache以其独特的语法和灵活性著称,但也有几个需要注意的地方:

  • 模板字符串与数据之间的关系管理较为复杂
  • 对复杂的嵌套结构支持较弱
  • 转载地址:http://iqtpz.baihongyu.com/

    你可能感兴趣的文章
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0_Postgresql和Mysql同时指定库_指定多表_全量同步到Mysql数据库以及Hbase数据库中---大数据之Nifi工作笔记0060
    查看>>
    NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
    查看>>
    NIFI1.21.0最新版本安装_配置使用HTTP登录_默认是用HTTPS登录的_Https登录需要输入用户名密码_HTTP不需要---大数据之Nifi工作笔记0051
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增加修改实时同步_使用JsonPath及自定义Python脚本_03---大数据之Nifi工作笔记0055
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
    查看>>
    NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
    查看>>
    NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
    查看>>
    nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
    查看>>