为什么要使用 getAttribute 和 setAttribute?

Why use getAttribute and setAttribute?

我正在努力更好地理解 A 型框架的基础知识。

我了解如何将 getAttribute() 和 setAttribute() 方法用于 访问组件数据。但是我不明白为什么我们使用它们而不是仅仅使用点符号访问组件属性。

很多人使用类似的东西: document.querySelector("#myText").getAttribute('text').value

为什么不使用: document.querySelector("#myText").components['text'].data.value

使用第二种方式有问题吗?有哪些陷阱?在我的实验中,由于场景加载完成之前的代码 运行,我经历了两种返回 "undefined" 的方式,但我已经学会了如何使用 "loaded" 事件来避免这种情况。

正如您在这个故障示例 (https://glitch.com/~text-hierarchy) 中看到的那样,我已经使用两种方式成功地将数据打印到控制台。

部分标准

getAttribute(prop)setAttribute(prop, value) 都用于 get/set 任何其他 DOM 元素的属性。 MDN 链接在这里 (get, set)

兼容aframe组件

如果您的 a-frame 组件中有一个 update() 函数,setAttribute() 会调用它,notyfing,组件的 属性 已更改。


这不是强制性的,直接修改某些属性甚至更快,但它有风险,例如如果开发人员使用 update() 来监视更改,则会出现未定义的行为。