数据双向绑定的原生写法原理

<body>
    <input type="text" name="" id="">
    <div></div>
    <script>
        let input = document.querySelector('input')
        let box = document.querySelector('div')
        var data = {
            name: ''
        }
        
        // 对象的数据劫持方法
        Object.defineProperty(this.data, 'name', {
           
        //    获取截取的数据
            get() {
                // 返回出去
                return input.value
            },
          
        //   将截取的数据设置给box
            set(i) {
                box.innerHTML = i
                input.value = i
            }
        })

        // 监听输入框键盘弹起事件
        input.addEventListener('keyup', (e) => {
            this.data.name = e.target.value
        })
    </script>
</body>

猜你喜欢

转载自blog.csdn.net/Maple__Leaf_/article/details/107552110