zoukankan      html  css  js  c++  java
  • vue实现双向绑定的简单原理: defineProperty

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>vue双向绑定的原理测试</title>
    </head>
    
    <body>
        手写一个简单双向绑定<br />
        <input type="text" id="model"><br />
        <div id="modelText"></div>
        <script>
            /*
             * @Author: 曾经的水哥  https://www.cnblogs.com/cengjingdeshuige/
             * @Date: 2018-09-25 15:14:59 
             * @Last Modified by: mikey.zhaopeng
             * @Last Modified time: 2018-09-25 15:15:50
             */
    
            var user = {};
            var defaultName = '2222222222ssas'
            var model = document.querySelector("#model")
            var modelText = document.querySelector("#modelText");
            model.value = defaultName
            modelText.textContent = defaultName
    
            // 定义属性 监控改变
            Object.defineProperty(user, 'name', {
                get: function () {
                    console.log('获取值')
                    return defaultName
                },
                set: function (newValue) {
                    console.log('设置新的值')
                    defaultName = newValue
                    model.value = newValue
                    modelText.textContent = newValue
                }
            })
    
            model.addEventListener('keyup', function () {
                user.name = this.value
                console.log('取值')
            }, false)
    
            // 获取值
            console.log(user.name)
        </script>
    </body>
    
    
    </html>
  • 相关阅读:
    JS表格测试
    2018电脑选购配置
    一句话技巧总结
    我的码风
    友情链接
    写代码时需要注意的一些东西
    他是 ISIJ 第四名,也是在线知名题库的洛谷“网红”
    从并查集的按秩合并看一类构造性问题
    高一上期末考游记
    P3233 [HNOI2014]世界树
  • 原文地址:https://www.cnblogs.com/cengjingdeshuige/p/9699657.html
Copyright © 2011-2022 走看看