前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >模拟Vue数据的双向绑定

模拟Vue数据的双向绑定

作者头像
zhaoolee
发布2018-04-19 17:14:58
1.3K0
发布2018-04-19 17:14:58
举报
文章被收录于专栏:木子昭的博客

Vue的数据双向绑定功能一直为人称道, Vue数据的双向数据绑定主要依赖了Object.defineProperty,这里尝试用最简单的代码, 实现数据的双向绑定Demo

Gif动态效果:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据双向绑定的实现</title>

    <style>

        section{
            text-align: center;
        }

        input{

            width: 800px;
            height: 100px;
            font-size: 90px;
            color: #d46f17;
        }

        div, label{

            width: 500px;
            height: 110px;
            font-size: 90px;
            color: #c03035;
            text-align: center;


        }

        body{

            align-content: center;


        }


    </style>
    <script>
        window.onload = function(){
            // 创建数据对象
            window.data = {};
            // 创建数据键值对
            let _name = "";
            let my_input = document.getElementById('myInput');
            let desc = document.getElementById("desc");

            Object.defineProperty(window.data, "name", {
                // 返回数据
                get: function(){
                    return _name;
                },
                // 设置数据
                set: function(value){
                    _name = value;
                    // 将新数据添加到input和div元素内
                    my_input.value = value;
                    desc.innerHTML = value;

                }
            });
            // 获取input按钮, 并为其绑定事件
            my_input.addEventListener('input', function (ev) {
                new_data = ev.target.value;
                console.log("当前输入框内的数据为:",new_data);
                // 将框内的数据赋值给, data
                window.data.name = new_data
            })
        }
    </script>

</head>
<body>
    <section>
        <label for="myInput">双向绑定Demo</label><input type="data" id="myInput">
        <div id="desc"></div>
    </section>

</body>
</html>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.03.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Gif动态效果:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档