探究Vue源码:mustache模板引擎(1) 什么是模板引擎

之前在讲虚拟dom和diff算法时说过后续会讲模板引擎 啊 那这边 说到做到哈
对这个问题 有个比较官方的回答 模板引擎是将数据变为视图的最优雅的解决方案
在这里插入图片描述
比如 将左侧数据变为右侧视图 大家应该最先想到的就是 v-for
其实 v-for 就是一种模板引擎语法

从图中看出 模板引擎处理的这个过程可以说非常优雅
那么 就带出了另一个问题 在模板引擎推出之前 又是怎么处理的呢?
在数据转dom这个处理上 经历了大体下图几个过程
在这里插入图片描述
当然 可能大家对他们并不熟悉 我们用代码来演示一下

到后面 你会发现 是一个不断优化 代码也越来越美观的过程

先随便建一个html文件 然后用编辑器打开
在这里插入图片描述
我们先编写界面代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><ul id = "list"></ul><script>var arr = [{"name": "小猫猫","age": 12,"sex":"男"},{"name":"小红","age": 11,"sex":"女"},{"name":"小强","age": 13,"sex":"男"}]</script>
</body>
</html>

现在 我们希望将这些数据 写入到 ul中

首先 我们来用纯DOM法
参考代码如下

//获取list ul节点
var list = document.getElementById('list');for (var i = 0; i < arr.length; i++) {//创建一个li标签的孤儿节点let oLi = document.createElement('li');//利用innerText将内容写入创建的孤儿节点oLi.innerText = arr[i].name;//将新节点插入到list节点中list.appendChild(oLi);}

在这里插入图片描述

打开页面
在这里插入图片描述
简单说 就是
循环数据 创建出一个一个的孤儿节点 然后写入数据 再手动插入
可以说写的相当麻烦

然后 我们来看 数组join法
我们编写代码如下

//获取list ul节点
var list = document.getElementById('list');//循环遍历数据
for (var i = 0; i < arr.length; i++) {//通过innerHTML  将字符串以html格式写入ul标签中list.innerHTML += ["<li>"+arr[i].name,"</li>"].join("")//join用于将数组转为字符串
}

打开界面
在这里插入图片描述
可以看到 数组也是顺利的上去了

字符串要实现换行可以用反引号 但这个写法要到ES6才有的
这个join在他之前出现 给了这个思想
就是通过数组实现这个一行一行的效果 用于书写html标签
然后通过join将数组变成字符串 通过innerHTML写入到元素之中

很明显 这样 他就比原生的纯DOM写法好看多了
这个方法 也层是前端 必会的 不过在vue面前 确实是弱爆 了

然后是ES6反引号方法 其实这个叫 模板字符串
参考代码如下

//获取list ul节点
var list = document.getElementById('list');//循环遍历数据
for (var i = 0; i < arr.length; i++) {//通过innerHTML  将模板字符串写入节点list.innerHTML += `<li>${arr[i].name}</li>`
}

模板字符串的好处在于 你可以直接在字符串里换行去写html语法 配合上innerHTML 是非常非常的好用
不过 这是一个ES6语法 虽然微软都放弃IE了 但目前 如果你希望自己的网页兼容性特别强 最好还是别用

当然 最优雅的还是模板引擎
我们下文开始讲mustache模板引擎
mustache应该是最早的模板引擎 可以帮助大家理解vue内部的一个原理思路

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/354155.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

氟化物选择吸附树脂Tulsimer ®CH-87 ,锂电行业废水行业矿井水除氟专用树脂

氟化物选择吸附树脂 Tulsimer CH-87 是一款去除水溶液中氟离子的专用的凝胶型选择性离子交换树脂。它是具有氟化物选择性官能团的交联聚苯乙烯共聚物架构的树脂。 去除氟离子的能力可以达到 1ppm 以下的水平。中性至碱性的PH范围内有较好的工作效率&#xff0c;并且很容易再生…

学习HTTP2

这是有关HTTP最后一部分内容的学习啦~今天一起来学习HTTP/2&#xff01; HTTP2 HTTP/2&#xff08;超文本传输协议第2版&#xff0c;最初命名为HTTP 2.0&#xff09;&#xff0c;简称为h2&#xff08;基于TLS/1.2或以上版本的加密连接&#xff09;或h2c&#xff08;非加密连接…

补番推荐

目录 first弹丸论破 second 学园默示录 third罪恶王冠 FIRST 弹丸论破 http://v.pptv.com/show/Dym1MpoAcK4Rj1M.html 本作在背景设定方面&#xff0c;游戏中当玩家们找出犯人的时候&#xff0c;犯人将会因此而被处置杀害。不过如果玩家们不能找出真正的犯人&#xff0c…

职业生涯规划-转[Mark.Chan]

转载自:https://www.cnblogs.com/mark-chan/p/5380135.html 担任公司高管的几年间&#xff0c;我面试过数以百计的各个层面的员工&#xff0c;其中最让我感到遗憾的一个现象就是很多人有着非常好的素质&#xff0c;甚至有的还是名校的毕业生&#xff0c;因为不懂得去规划自己的…

qq修改群名服务器失败,qq建群失败什么原因 q群一直创建失败 - 云骑士一键重装系统...

Q群聊创建一直失败是什么原因&#xff0c;一起来了解一下吧 QQ群创建失败会有以下几种情况&#xff0c;请您参考&#xff1a; 提示“敏感字眼/输入不符合规范”&#xff1a; 由于群名称或群简介内容中含敏感受限词汇导致&#xff0c;建议您检查后删除再尝试。 提示“系统繁忙&a…

python数据可视化-matplotlib学习总结

目录 &#xff08;一&#xff09;常见的图形 1、趋势图&#xff08;直线图&#xff09;&#xff1a;plot&#xff08;&#xff09; 2、散点图&#xff1a;scatter(): (二&#xff09;统计图形 1、柱状图&#xff1a;bar( 2、条形图&#xff1a;barh() 3、直方图&#xff…

搭建ubuntu容器内C/C++开发调试环境

一、创建容器 为了让容器内的调试器&#xff08;gdb、lldb&#xff09;能够正常调试&#xff0c;在创建容器时需要添加参数&#xff1a; podman添加参数&#xff1a;--cap-addSYS_PTRACE&#xff0c;docker添加参数--cap-addSYS_PTRACE --security-opt seccompunconfined 否…

不知道图片变漫画怎么弄?来跟我学这几个简单的方法

我想问经常换头像的朋友一个问题&#xff0c;你们有用过自己的漫画脸当头像吗&#xff1f;如果我们把自己的头像做成漫画脸不仅不容易和别人撞头像而且更加能贴合我们自身的形象。那你们知道漫画脸怎么拍吗&#xff1f;今天我来给大家分享几个漫画脸制作都的方法。有兴趣的朋友…

适合剪辑新手的几个网站

现在越来越多的人喜欢剪辑视频了&#xff0c;现在我就推荐几个不错的适合剪辑新手的网站。 1.Videvo 这是一个提供高清或 4K 音频和视频的网站。它的视频分类详细&#xff0c;主要的分类有镜头和图文。 我更喜欢它的镜头类型下的视频&#xff0c;每一帧都很好看&#xff01; …

古画会唱歌/图片说话对口型视频教程+工具素材

正文: 一张人物古画对口型&#xff0c;配上一段搞笑的配音&#xff0c;轻轻松松就能获得十几万的点赞&#xff0c;这个适合小白去操作&#xff0c;不仅好玩有趣涨粉还特别快。 视频演示放到压缩包了&#xff0c;有兴趣的自己去看吧。 教程工具素材 全部打包: wwreh.lanzoui…

短视频剪辑的小技巧分享,助你剪出令人印象深刻的片段,吸粉引流

短视频剪辑的小技巧分享&#xff0c;助你剪出令人印象深刻的片段&#xff0c;吸粉引流 短视频剪辑说难也难&#xff0c;但是说简单其实也简单&#xff0c;毕竟只要认真学习&#xff0c;大概几天就可以基本掌握短视频剪辑的流程&#xff0c;只是如果想要剪辑出来可以吸粉引流的…

全网最简单的网络图画法,小白福音包学包会

全网最简单的网络图画法&#xff0c;小白福音包学包会 徐锐&#xff08;助理研究员&#xff09;&#xff0c;广东省生态环境技术研究所&#xff0c;土壤微生物与宏基因组方向 版本1.0.1&#xff0c;更新日期&#xff1a;2020年6月23日 本项目永久地址&#xff1a;https://githu…

Python程序设计基础:标识符、变量与赋值、输入输出

文章目录 一、标识符二、变量与赋值三、输入输出 一、标识符 Python对每个标识符的命名存在要求&#xff1a; 1、每个标识符必须以字母或下划线“_”开头&#xff0c;后跟字母、数字或下划线的任意序列。根据这个规则&#xff0c;以下都是Python中的合法名称&#xff1a;a&…

光纤熔接之盘纤技巧(首先你得有一把好切割刀)

光纤熔接不可忽视的一个步骤——【盘纤】。科学的盘纤方法&#xff0c;可使光纤布局合理、附加损耗小、经得住时间和恶劣环境的考验&#xff0c;可避免挤压造成的断纤现象。 很多自称干了10多年的光纤熔接师傅盘起来的光纤“惨不忍睹” 整个光纤熔接是一门细致的手艺活。光纤熔…

第三篇——胡咧咧之动漫素材如何剪辑,只拼接可以吗?

第三篇——胡咧咧之动漫素材如何剪辑&#xff0c;只拼接可以吗&#xff1f; 上一篇告诉大家如何下载素材了&#xff0c;现在大家电脑里都有素材了&#xff0c;可是&#xff0c;不能直接发布到抖音里&#xff0c;否则&#xff0c;就是版权侵权&#xff0c;违规&#xff0c;轻则…

爬了1000张清纯妹子私房照,我流鼻血了...

闲扯几句 大家好&#xff0c;我是你们的老朋友青戈&#xff0c;之前分享了一篇Java爬虫的入门实战教程&#xff0c;收获了不少赞&#xff0c;看来大家伙对爬虫的热情度还是蛮高的哈。既然大家都这么想学爬虫&#xff0c;那今天就安排点刺激的。那你要非问我有多刺激&#xff0…

SpringBootWeb案例-1(上: 来源黑马程序员)

SpringBootWeb案例 完成后的成品效果展示&#xff1a; 主要内容如下&#xff1a; 准备工作部门管理 1. 准备工作 我们先从"需求"和"环境搭建"开始入手。 1.1 需求&环境搭建 1.1.1 需求说明 1、部门管理 部门管理功能开发包括&#xff1a; 查询部…

高校学生公寓数字化安全用电管理系统解决方案

摘要 本文针对高校学生公寓用电特点,从安全用电角度提出了一套集用电管理、计量、恶性负载智能识别控制、实时跟踪检测等功能于一体的数字化安全用电管理系统技术解决方案———学生公寓智能控电管理系统。 关键词:公寓恶性负载安全用电智能系统 0、引言 近年来,为了响应国…

短视频矩阵源码系统打包.源码

Masayl是一款基于区块链技术的去中心化应用程序开发平台&#xff0c;可帮助开发者快速、便捷地创建去中心化应用程序。Masayl拥有丰富的API和SDK&#xff0c;为开发者们提供了支持。此外&#xff0c;Masayl还采用了高效的智能合约技术&#xff0c;确保应用程序的稳定、安全和高…

【数据结构与算法分析】反转链表与顺序表(内含源码,思路清晰)

文章目录 介绍实现顺序表反转实现链表反转附链表的一些中间函数 介绍 顺序表和链表都是数据结构中常见的线性表。它们的主要区别在于内存管理方式不同。   顺序表&#xff08;Array&#xff09;是由一系列元素按照一定顺序依次排列而成&#xff0c;它使用连续的内存空间存储数…