vue 雙向綁定演示

一、強行綁定

<!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>Document</title>
    <script src="./vue.js"></script>
</head>

<body>
    <input id="ipt" />
    <p id="p"></p>
    <script>
        //代碼演示:defineProperty的雙向綁定
        var obj = {};
        Object.defineProperty(obj, 'val', {
            set: function (newVal) {
                document.getElementById("ipt").value = newVal == undefined ? '' : newVal;
                document.getElementById("p").innerHTML = newVal == undefined ? '' : newVal;
            }
        });
        document.getElementById("ipt").addEventListener("input", function (e) {
            obj.val = e.target.value;
        })
    </script>
</body>

</html>

二、簡單的雙向綁定演示

<!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>Document</title>
    <script src="./vue.js"></script>
</head>

<body>
    <input zl-model="val" />
    <p zl-model="val"></p>
    <script>
        //代碼演示:defineProperty的雙向綁定
        var obj = {};
        Object.defineProperty(obj, 'val', {
            set: function (newVal) {
                var list = document.querySelectorAll("[zl-model=val]");
                for (let i = 0; i < list.length; i++) {
                    if (list[i].nodeName == "INPUT") list[i].value = newVal == undefined ? '' : newVal;
                    else list[i].innerHTML = newVal == undefined ? '' : newVal;
                }
            },
            get: function () {
                return document.querySelector("[zl-model=val]").value;
            }
        });
        document.querySelector("[zl-model=val]").addEventListener("keydown", function (e) {
            obj.val = e.target.value;
        })
    </script>
</body>

</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章