文章目录

  • 前言
  • 一、什么是模板引擎
    • 历史上曾经出现的数据变为视图的方法
  • 二、mustache的基本使用
    • 1.引入库
    • 2.循环对象数组
    • 3.不循环
    • 4.循环简单对象
  • 三、mustache的底层核心机理
    • 什么是tokens

前言

在学习vue之后,如何深入了解其作用机制,也是非常重要的。那么就从vue模板解析的初阶版本,及历史比较悠久的mustache开始了解其工作原理


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是模板引擎

随着前端业务的功能越来越复杂,用户的需求不再仅仅满足于静态页面,这时就需要获取数据,重新跟新页面的数据,那么就推动了模板引擎的出现。
模板引擎是将数据变为视图最优雅的解决方案(即数据驱动视图的思想

历史上曾经出现的数据变为视图的方法

纯DOM法 ----非常笨拙,没有实战价值(不推荐
数组join法 —曾经非常流行的方法,是前端必会的知识
ES6的反引号法 —类似于数组join法,只是ES6中新增了模板字符串,非常好用
模板引擎 —解决数据变为视图最优雅的方法。

二、mustache的基本使用

mustache的GitHub:https://github.com/janl/mustache.js 你也可以直接查看英文文档

mustache是最经典最早出现的模板解析库。它的底层实现机理在当时是非常具有创造性的,轰动性的。vue学习和借鉴了它。

1.引入库

可以通过boostcdn,com 找到镜像库,直接引入script标签中

2.循环对象数组

3.不循环

4.循环简单对象

三、mustache的底层核心机理

在较为简单的情况下可以采用正则表达式,但在较为复杂的模板解析时,是根本实现不了的

于是聪明的人类想出了下面的流程来处理

什么是tokens

tokens是JS的嵌套数组,就是模板字符串的JS表示

还有循环表示什么的,,,

把模板解析成tokens之后就可以与数据结合,解析为dom字符串了

最后附上视频讲解链接:https://www.bilibili.com/video/BV1EV411h79m?from=search&seid=9233343641661027239&spm_id_from=333.337.0.0

模板解析-mustache分析相关推荐

  1. Web模板引擎—Mustache

    Web模板引擎--Mustache 2012年9月12日 BY BELL·12 COMMENTS Web 模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,通常是标准的 ...

  2. PHP模板解析对象,PHP模板解析类实例

    摘要:本文实例讲述了PHP模板解析类.分享给大家供大家参考.具体如下:<?php class template { private $vars = array(); private $conf  ...

  3. Javascript模板引擎mustache.js详解

    进阶之路在于日积月累, 每天进步一点点-加油~ mustache.js是一个简单强大的Javascript模板引擎,使用它可以简化在js代码中的html编写,压缩后只有9KB,非常值得在项目中使用. ...

  4. C++对象模型9——临时对象的生命周期、模板及实例化分析、内联函数

    一.临时对象的生命周期 T c=a+b 假设T是一个类型,那么上述代码执行时,首先会产生一个临时对象用来存放a+b的结果(拷贝初始化临时对象),然后用该临时对象拷贝初始化c,最后临时对象被释放.如果开 ...

  5. sdcms的模板解析引擎,一个非常简单和实用的CMS

    代码 <% '============================== 'SDCMS模板解析引擎 'Author:IT平民 'Date:2009年4-5月 '================ ...

  6. vmwear导出OVF模板解析(解决ovf导入服务器失败问题,虚拟机版本等)

    vmwear导出OVF模板解析(解决ovf导入服务器失败问题,虚拟机版本等) 参考文章: (1)vmwear导出OVF模板解析(解决ovf导入服务器失败问题,虚拟机版本等) (2)https://ww ...

  7. 【安全漏洞】Resin解析漏洞分析

    前言 前阵子看有师傅在公众号上发表了Resin解析漏洞分析,我们也知道有个常用的OA用的就是Resin,因此我认为了解它的漏洞是十分必要的. [学习资料] 原理分析 这个漏洞和IIS解析漏洞比较像,可 ...

  8. Django 3.2.5博客开发教程:实现模板之前的分析与准备

    在之前的体验django模板.体验数据查询以及一些常用的模板使用方法文章里,向大家介绍了如何将数据库的数据展现到网页上,和一些简单的模板使用方法.之后我们就开始实现各种页面的展现. 在此之前,我们先从 ...

  9. php 模板解析,关于模板的原理和解析

    PHP – 关于模板的原理和解析 将PHP代码和静态HTML代码进行分离,使代码的可读性和维护性得到显著提高. 使用模板引擎: 我们所说的模板是web模板,是主要由HTML标记组成的语言来编写的语言, ...

最新文章

  1. crysis3 android,Crytek谈安卓版《Crysis 3》:Tegra X1图形性能OK,瓶颈是CPU
  2. rabbitmq Clustering Guide--官方
  3. MyBatis中提示:Invalid Bound statemnet(not found )com.
  4. 数据结构与算法--二叉树实现原理
  5. PCM设备能在公网使用吗?
  6. Vue全家桶 之 Vue基础
  7. 计算机四级的英文,计算机四级考试中英文术语对照
  8. POJ 3268:Silver Cow Party 求单点的来回最短路径
  9. ASP.NET页面之间传值的方式之Cookie(个人整理)
  10. UIMenuController,UIPasteboard:复制,粘贴详细解释
  11. Android的代码同步repo
  12. Java:计算立方体的体积和底面积
  13. 从csrss弹出的ASSERT对话框谈起
  14. labelImg使用教程
  15. 如何实现施耐德Twido系列PLC远程上下载
  16. axure 调整中继器列宽_Axure RP 8教程 - 中继器功能改进
  17. 2021CCPC网络预选赛
  18. 面试时如何做好5分钟自我介绍?
  19. python+selenium环境配置及浏览器调用
  20. 微信小程序--在wxml中设置保留小数位数

热门文章

  1. Flutter The argument type ‘Listenable‘ can‘t be assigned to the parameter type ‘Animation<double>
  2. 101. 对称二叉树
  3. Ax+By+C=0 直线一般式拟合 c++/python
  4. html输入框不显示cookie_jquery设置浏览器缓存cookie提示内容显示隐藏
  5. 在WPF中快速实现键盘钩子
  6. 折纸机器人的步骤图解_儿童折纸:正方形纸张简单折纸机器人(步骤图解)
  7. 纹章之谜一人攻略——英雄战争篇
  8. android如果跳过锁屏,安卓系统再曝漏洞:任何人都可轻松绕过锁屏密码
  9. Kali 的sqlmap:Connection timed out to the target URL. unable to connect to the target URL
  10. Java Calendar用法