html
<div id="app">
<h1>{{msg}}--{{msg}}</h1>
</div>
js
// 模型
let data = {}
// 借助代理
let proxy = new Proxy(data, {
// 修改数据
set(target, key, value, receiver) {
// 更新数据
Reflect.set(target, key, value, receiver);
// 更新视图
updateView(receiver)
}
})
// 获取模板
let tpl = document.getElementById('app').innerHTML;
// 更新视图
function updateView(data) {
// 替换插值语法
let html = tpl.replace(/{{(\w+)}}/g, (match, $0 = '') => data[$0])
// 更新视图
document.getElementById('app').innerHTML = html;
}
// 我们修改数据,更新视图
// data.msg = 'ickt';
// 代理数据
proxy.msg = 'ickt';
来源:oschina
链接:https://my.oschina.net/u/4162046/blog/3215620