写在前言:我在b站学编程,这次笔记来源于Vue源码解析系列课程_哔哩哔哩_bilibili,侵删!!
1.什么是模板引擎
模板引擎是将数据变视图的最优雅的解决方案
但是这节课并不是学v-for,这节课学习的是mustache

mustache:胡子,{{}}最早的模板引擎库
参数1:模板字符串 参数2:数据
遇到的第一个问题
在引入mustache.js之后遇到如下问题:
根本原因:Node和浏览器端所支持的模块规范不同。
图源:blog.csdn.net/weixin_4081… 侵删
解决方案:将mustache.js最后一行代码由export default mustache;更改为module.export =mustache;解决,但是出现了新的问题:
在这里发现到不对劲的地方了,于是最后才明白问题在哪里:
(最好的解决方案是,不要跟着博主去bootcdn上直接复制粘贴cdn.bootcdn.net/ajax/libs/m… ,自己去GitHub上拉(地址:github.com/janl/mustac… )并且npm就可以(这一步不可少)也不用改源码(上面的export和export default区别就不用纠结这个啦(贴上来单纯为了学习记忆))
经此一步得到最终的解决:
终于进入mustache库的学习了(类似于v-for)
复杂数据类型的循环:
简单数据类型的循环:
也可以不循环:
数组还可以嵌套:
var data = {
arr:[
{"name":"小明","age":12,"sex":"男","hobbies":["游泳","王者荣耀"]},
{"name":"小红","age":12,"sex":"女","hobbies":["吃饭","睡觉"]},
{"name":"小强","age":12,"sex":"男","hobbies":["打豆豆","搞钱"]}
]
}
但是需要注意的是,在mustache.js的{{}}中,不能进行任何逻辑运算({{1+1}}都不能得到2的结果,是一个逻辑很弱的模板引擎,只能进行简单的数据渲染
此时的渲染方法是(就类似于for中嵌套for):
布尔值(类似于v-if的用法):
除了mustache.js模板引擎之外呢,还有神来一笔的模板写法
1.<script>标签中的type不为"text/javaScript"就可以,在这里定义为template,使用id进行标识。在这里自定义模板中间存在高亮,能够自动补齐等等,就相当于是一个容器专门用来存储字符串
2.在使用的时候,直接:
这个想法太天才了,神来一笔,解决了反引号不好编辑的问题
小tip: {{#arr}}和{{/arr}}必须成对出现