<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="../node_modules/mustache/mustache.js"></script>
</head>
<body>
<div class="container"></div>
<div class="container1"></div>
<div class="container2"></div>
<div class="container3"></div>
<div class="container4"></div>
<script>
const container = document.querySelector(".container");
const data = { thing: "iphone", money: 4444, mood: "happy" };
const templateStr = `<h3>我今天买了一部{{thing}}手机,花了我{{money}}元,心情好{{mood}}啊</h3>`;
const res = Mustache.render(templateStr, data);
console.log(res); //res就是渲染好的模板+数据=dom元素(尚未挂载到页面中)
console.log(templateStr); //templateStr保持原样不变
container.innerHTML = res;
/******************************************************布尔值boolean*******************************************************************/
const container1 = document.querySelector(".container1");
const data1 = { isShow: true, message: "hello" };
const templateStr1 = `{{#isShow}}
<h3>{{message}} vue</h3>
{{/isShow}}
`;
const res1 = Mustache.render(templateStr1, data1);
console.log(res1); //注意到一点:当isShow=false res1输出'';当为true时候 输出<h3>hello vue</h3>(尚未挂载到页面中)
console.log(templateStr1); //还是templateStr1原样输出
container1.innerHTML = res1;
/******************************************************普通数组******************************************************************************/
const container2 = document.querySelector(".container2");
const data2 = [100, 200, 300, 400];
//{{#varible}}循环体{{/varible}}
const templateStr2 = `
<ul>
{{#data2}}
<li>{{.}}</li>
{{/data2}}
</ul>
`;
const res2 = Mustache.render(templateStr2, { data2 });
console.log(res2);
console.log(templateStr2); //还是templateStr2原样输出
container2.innerHTML = res2;
/******************************************************对象数组******************************************************************************/
const container3 = document.querySelector(".container3");
const data3 = [
{ name: "zs", age: 12, sex: "male" },
{ name: "lise", age: 13, sex: "female" },
{ name: "wangwu", age: 14, sex: "male" },
];
const templateStr3 = `
{{#data3}}
<div>
<h3>{{name}}的基本信息</h3>
<p>姓名是:{{name}}</p>
<p>年龄是:{{age}}</p>
<p>性别是:{{sex}}</p>
</div>
{{/data3}}
`;
const res3 = Mustache.render(templateStr3, { data3 });
console.log(res3);
console.log(templateStr3);
container3.innerHTML = res3;
/******************************************************嵌套对象数组******************************************************************************/
const container4 = document.querySelector(".container4");
const data4 = [
{ name: "zs", age: 12, sex: "male", hobbies: ["旅游", "学习"] },
{ name: "lise", age: 13, sex: "female", hobbies: ["看书", "吃饭"] },
{ name: "wangwu", age: 14, sex: "male", hobbies: ["上网", "上班"] },
];
const templateStr4 = `
{{#data4}}
<ul>
<h3>{{name}}的基本信息是:</h3>
<li>姓名是{{name}}</li>
<li>年龄是{{age}}</li>
<li>性别是{{sex}}</li>
<li>爱好是:
<ol>
{{#hobbies}}
<li>{{.}}</li>
{{/hobbies}}
</ol>
</li>
</ul>
{{/data4}}
`;
const res4 = Mustache.render(templateStr4, { data4 });
console.log(res4);
console.log(templateStr4);
container4.innerHTML = res4;
</script>
</body>
</html>