关于模板引擎的简单原理

相信用过vue框架或者是简单了解过vue的人都知道模板引擎这个东西,大致就是代码复用 数据和页面分离这两个概念 这里就不多说概念的东西了 很多东西还是直接上代码 自己看懂了意会了也就明白了

1丶模板引擎丶模板引擎~~ 很简单, 首先你需要一个模板

<body>
	<script type="text/tamplate" id="index">
	    <!--  视图  -->
		<div class="box">
			<div class="top">{*name*}</div>
			<div class="footer">{*something*}</div>
		</div>	
	</script>
</body>

首先我们看上面这段代码, 你需要明白 此时 这个div(.box)容器并没有加载进页面里面 而对于 {name} 你有没有很熟悉 是不是很像vue里面的 {{name}} 这个形式 我们的目的很相似 也是用后面分离出来的name变量something变量去替换页面中的{name}和{something} 具体怎么做我们继续往下

2丶数据

	//数据
	let data = {
		name:'tom',
		something:'我是帅哥'
	}

3丶获取模板

    //获取模板
	let script = document.getElementsByTagName('script')[0];
	let tamplate = script.innerHTML;

主要就是将我们的模板当成字符串去处理 替换里面的变量 这里我们将这个处理过程封装成一个函数

4丶处理函数

function change(data,str){
		let newStr = str.replace(/{\*(\w+)\*}/g,function(a,b){
				return data[b];
		})
		return newStr
	}

参数 数据 和 需要被操作的字符串 这个函数的主要功能就是将字符串里的变量替换成我们预先准备好的数据(或者你也可以替换成从后台获取到的数据) 只是我们这里并没有加数据监听所以页面并不会实时的更新

5丶最后 加载

document.body.innerHTML = change(data,tamplate)

我们渲染的就是被处理过的字符串 这样你在页面的任何地方去加载这个模板都是一样的效果

6丶总结思路

如果还是不明白的可以看这里
首先自写一个模板 装进script标签 通过js获取 将标签等元素当成字符串去处理 使用replace方法利用正则和预先设置的数据去替换里面的你自己定好的模板形式(如:{name}) 最后使用body.innerHTML加载即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值