这是一个来自curiossity的问题.
问题是:
这些客户端框架如何工作,让我解释一下.
我正在使用javascript超过5年.我不明白一件事.他们如何知道变量(例如标题)变量值何时发生变化?
我会这样做:
function onTitleChange(title) { //do some stuff }
let title = "This is some title"
let lastTitle = title;
setInterval(() => {
if(lastTitle !== title) {
onTitleChange(title);
lastTitle = title
}
}, 10);
这是他们的工作方式吗?这是变量值变化时Vue.js知道的吗?如果没有,他们用什么样的魔法来知道变量值何时发生变化?
最佳答案 我会用非常简单的语言逐步解释它:
>制作< h2> Hi< / h2>简单的HTML页面上的元素
>打开浏览器控制台并将DOM元素存储在变量中:
var h2 = document.getElemntsByTagName(‘h2’)[0];
>首先使另外两个变量var obj = {};和第二个var text =”;
这是您正在寻找的部分:
>而不是简单地分配obj.text = text我们为obj.text属性声明getter setter,这样每当我们将新值设置为obj.text时,相应的DOM元素也会改变.
Object.defineProperty(obj, 'text', {
get: function () {
return text;
},
set: function (newvalue) {
text = newvalue;
h2.innerHTML = text;
}
});
>现在继续改变obj.text值:obj.text =“Hello again”
有关更多信息,请查看此page.
所有代码均可在:JSfiddle获得