Proxy要实现数据双向绑定

情到浓时终转凉″ 提交于 2020-04-05 20:30:21

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';
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!