vue源码之mustache模板引擎1

        模板引擎的一个有点:它是将数据转为视图的最优雅的方法

         对于下面的数据

[{"name":"小名",'age':"12","sex":'男'},{"name":"小红",'age':"12","sex":'女'},{"name":"小王",'age':"12","sex":'男'},
]

        相信vue的玩家首先想到的是

<ul><template  v-for="item in data"><li class="hd">{{ item.name }}的信息</li><li class="bd"><p>姓名{{ item.name }</p><p>年龄{{ item.name }}</p><p>性别{{ item.name }}</p></li>
</template></ul>

而还没学vue的朋友,就只能进行dom操作了

像纯DOM

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><ul></ul><script>let arr = [{ "name": "小名", 'age': "12", "sex": '男' },{ "name": "小红", 'age': "12", "sex": '女' },{ "name": "小王", 'age': "12", "sex": '男' },]let ul = document.querySelector('ul')for (const item of arr) {let li = document.createElement('li')let div1 = document.createElement('div')div1.className = 'hd'let div2 = document.createElement('div')div2.className  =  'bd'div1.innerHTML = item.name + '的基本信息'let p1 = document.createElement('p')let p2 = document.createElement('p')let p3 = document.createElement('p')p1.innerHTML = '姓名:' + item.name p2.innerHTML = '年龄:' + item.age p3.innerHTML = '性别:' + item.sexdiv2.appendChild(p1)div2.appendChild(p2)div2.appendChild(p3)li.appendChild(div1)li.appendChild(div2)ul.appendChild(li)}</script>
</body></html>

        通过数组的join方法

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><ul></ul><script>let data = [{ "name": "小名", 'age': "12", "sex": '男' },{ "name": "小红", 'age': "12", "sex": '女' },{ "name": "小王", 'age': "12", "sex": '男' },]let ul = document.querySelector('ul')for (const item of data) {let arr = ['<li>','    <div class="hd">'+item.name+'的信息</div>','    <div class="bd">','        <p>姓名:'+item.name+'</p>','        <p>年龄:'+item.age+'</p>','        <p>性别:'+item.sex+'</p>','    </div>','</li>',]let htmlStr = arr.join('')ul.innerHTML += htmlStr}</script>
</body></html>

以及es6推出的模板字符串

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><ul></ul><script>let ul = document.querySelector('ul')let data = [{ "name": "小名", 'age': "12", "sex": '男' },{ "name": "小红", 'age': "12", "sex": '女' },{ "name": "小王", 'age': "12", "sex": '男' },]for (const item of data) {ul.innerHTML += `<li><div class="hd">${item.name}的信息</div><div class="bd"><p>姓名:${item.name}</p><p>年龄:${item.age}</p><p>性别:${item.sex}</p></div></li>`}</script>
</body></html>

 此为实现的效果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js之-闭包

代码分析 html复制代码<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>对常见闭包的理解…

每日5题Day10 - LeetCode 46 - 50

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;46. 全排列 - 力扣&#xff08;LeetCode&#xff09; class Solution {//这道题就是一个dfs//把所有结果遍历&#xff0c;到叶子节点就可以添加结果了List<Int…

Java面试题大全(从基础到框架,中间件,持续更新~~~)

从Java基础到数据库&#xff0c;Spring&#xff0c;MyBatis&#xff0c;消息中间件&#xff0c;微服务解决全部Java面试过程中的问题。&#xff08;持续更新~~&#xff09; Java基础 2024最新Java面试题——java基础 MySQL基础 mysql基础知识——适合不太熟悉数据库知识的小…

消息传递与集成:使用Springboot进行异步通信

消息传递与集成&#xff1a;使用Spring Boot进行异步通信 在现代的分布式系统中&#xff0c;异步通信已经成为了一种常见的设计模式。通过使用消息队列和事件驱动架构&#xff0c;我们可以实现系统之间的解耦&#xff0c;提高系统的可扩展性和可靠性。本文将介绍如何使用Sprin…

汽车防抱死制动系统ABS的单片机程序Proteus仿真设计

次设计对汽车防抱死系统进行简单的设计,针对车速、轮速两个信号进行分析,并根据最佳滑移率计算。采用对比实时滑移率对比分析,ECU控制制动器进行制动力调节使滑移率在制动过程处于最佳范围,保证系统具有良好制动性能。 汽车的制动液压调节器主要包含以下几个部件:调压电磁…

git回退到指定版本,同时提交记录也会删除

第一步&#xff1a; git reset --hard xxx (需要恢复版本的 commit id)第二步&#xff1a;branch_name就是远程分支的名称 git push origin <branch_name> --force

异相(相位不平衡)状态下的合成器效率分析-理论与ADS仿真

异相&#xff08;相位不平衡&#xff09;状态下的合成器效率分析-理论与ADS仿真 12、ADS使用记录之功分器设计中简单介绍了威尔金森功分器的设计方法。一般来讲&#xff0c;功分器反过来就能作为合路器使用&#xff0c;在输入信号相位一致的情况下&#xff0c;各种合路器的效率…

YOLOv8改进 | 卷积模块 | 用DWConv卷积替换Conv【轻量化网络】

💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 在YOLOv8的GFLOPs计算量中,卷积占了其中大多数的比列,为了减少计算量,研究人员提出了用DwConv代替Conv。本文给大家带来的教程是将原来的Conv替换为DwConv。文章在介绍主要的原理后,将手把手教学如何进行模…

mySql从入门到入土

基础篇 在cmd中使用MYSQL的相关指令&#xff1a; net start mysql // 启动mysql服务 net stop mysql // 停止mysql服务 mysql -uroot -p1234//登录MYSQL&#xff08;-u为用户名-p为密码&#xff09; //登录参数 mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认1…

infoq读书笔记-云原生时代,如何建设稳定性可观测体系?

而可观测性则是把Log、Trace、Metric拧成了一股绳&#xff0c;让三大支柱互相之间建立亲密的“血缘关系”&#xff0c;通过这种关系我们可以结构化的从整体到局部再到具体细节的观测业务&#xff1a; 图片来自网络如果把业务系统比作一座海上的冰山&#xff0c;监控仅能看到的…

PHP基础学习笔记(面向对象OOP)

类和对象 <?php //声明一个名为 Fruit 的类&#xff0c;它包含两个属性&#xff08;$name 和 $color&#xff09;以及两个用于设置和获取 $name 属性的方法 set_name() 和 get_name()&#xff1a; class Fruit {// Propertiespublic $name;public $color;// Methodsfuncti…

回见,那果园

记不得何时开始骑行&#xff0c;何时开始爬山&#xff0c;何时偶遇洛师傅&#xff0c;何时进了那半山腰的果园。 似乎很远&#xff0c;又很近。 昨天打电话给果园的师傅&#xff0c;本意问问杏是否熟了&#xff0c;周末骑行过去、进山聊天顺道吃个新鲜。 洛师傅呵呵的笑…

Unity | 框架MVC

目录 一、MVC介绍 二、搭建UI界面 三、代码实现 1.Model层 2.View层 3.Controller层 四、MVC框架测试 五、知识补充 一、MVC介绍 model&#xff1a;数据层。界面展示的数据&#xff08;需要进行初始化、更新、保存、事件通知等操作&#xff09;&#xff0c;单例模式&am…

【golang】内存对齐

什么是内存对齐 在访问特定类型变量的时候通常在特定的内存地址访问&#xff0c;这就需要对这些数据在内存中存放的位置有限制&#xff0c;各种类型数据按照一定的规则在空间上排列&#xff0c;而不是顺序的一个接一个的排放&#xff0c;这就是对齐。 内存对齐是编译器的管辖…

机器视觉-硬件

机器视觉-硬件 镜头焦距凸透镜焦点不止一个相机镜头由多个镜片组成对焦和变焦 镜头光圈光圈的位置光圈系数F 镜头的景深景深在光路中的几何意义 远心镜头远心镜头的种类远心镜头特性应用场景 镜头的分辨率镜头反差镜头的MTF曲线镜头的靶面尺寸镜头的几何相差相机镜头接口螺纹接…

个人手里有一批宽带资源,想跑PCDN 如何做?

网友问我手里有一批宽带资源&#xff0c;想要跑PCDN该如何做&#xff0c;可以按照以下步骤操作&#xff1a; 了解PCDN的基本原理和市场需求。PCDN&#xff08;Peer-to-Content Delivery Network&#xff09;是一种基于P2P技术的内容分发网络&#xff0c;通过将用户设备上的空闲…

javas-core VS java-object-diff

对照工具选择 javas-core 和 java-object-diff ,对比demo https://github.com/kofgame/objectdiff-vs-javers&#xff0c;都为同源对比&#xff0c;都支持嵌套对象。 使用JMH测试方法进行性能测试&#xff0c;使用题库的QuestionResponseVO对象来进行对照对比&#xff0c;进行…

【Python搞定车载自动化测试】——Python基于Pytest框架实现UDS诊断自动化(含Python源码)

系列文章目录 【Python搞定车载自动化测试】系列文章目录汇总 文章目录 系列文章目录&#x1f4af;&#x1f4af;&#x1f4af; 前言&#x1f4af;&#x1f4af;&#x1f4af;一、环境搭建1.软件环境2.硬件环境 二、目录结构三、源码展示1.诊断基础函数方法2.诊断业务函数方法…

深入探索Python基础:两个至关重要的函数

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、初学者的基石&#xff1a;print与input函数 二、类型转换&#xff1a;从字符串到浮点数…

第十四节:带你梳理Vue2:filters过滤器

过滤器是什么? 过滤器是一种在模板中处理数据的便捷方式, 会经常在其他模板语言中见到, 他们特别适合对字符串和数字进行简单的显示变化. 1. 通过案例理解过滤器 示例: 对于数字价格处理 1.1 Mastache语法中处理价格数字 <div id"app"><!-- 正常处理 -…