1. 程式人生 > 其它 >js-變數實現雙向繫結

js-變數實現雙向繫結

單向資料繫結

指先把模板寫好,然後把模板和資料(資料可能來自後臺)整合到一起形成HTML程式碼,然後把這段HTML程式碼插入到文件流裡

缺點:一旦HTML程式碼生成就沒有辦法改變,如果有新資料重新傳入,就必須重新把模板和資料整合到一起插入到文件流中

資料雙向繫結

資料模型和檢視之間的雙向繫結,使用者在檢視上的修改會自動同步到資料模型中,同樣的,如果資料模型中的值發生變化,也會同步到檢視中去。

優點:無需進行類似單向資料繫結的那些CRUD操作。

底層實現大概有兩種:

1.手動繫結,同時使用dirty check去迴圈監聽。(代表angular js)

2.前端資料劫持,使用define Property,(代表Vue js)

以下是一個簡單的小例子,在input框裡輸入什麼,後面就會顯示什麼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<input type="text" id="aa"/>
<span id="bb">{{hello}}</span>
<script>
    var obj = {};
    Object.defineProperty(obj,
'hello',{ set:function(val){ document.getElementById('bb').innerHTML = val; document.getElementById('aa').value = val; } }); document.getElementById('aa').onkeyup = function(e){ obj.hello = e.target.value; }; obj.hello = ""; </script> </body> </html>
View Code

本文僅提供參考,是本人閒時所寫筆記,如有錯誤,還請賜教,作者:阿蒙不萌,大家可以隨意轉載