将太多组件嵌入一个组件中是否有害?

时间:2017-02-16 04:12:34

标签: javascript ember.js

我有一个多选表组件,它包含一个表-disaply组件。在表格显示组件内部还有另一个名为table-row的组件。

table-selectable
      | (contains)
      v
 table-display
      | (contains)
      v   
  table-row

我这样做是因为我想让每个组件都足够基本,以便它可以用于其他目的,但是,我意识到将动作传递给父组件并不容易。原因是我必须小心地将sendAction方法中的所有操作和hbs文件中的操作名称连接起来,我觉得这可能会导致长期错误中的错误。

我的问题是,像我所做的那样,在单个组件中嵌套tom nay组件是否有害?

1 个答案:

答案 0 :(得分:0)

Javascript在加载的文档中准备HTML DOM对象树。然后,您可以使用此DOM来处理其元素。 Javascript访问HTML DOM仍然比执行javascript更慢而不访问HTML DOM。 你提到的级别不是太深嵌套,到目前为止你很容易访问内部元素。 元素生成的事件总是传播到Javascript引擎创建的执行上下文,以运行代码段。因此,您可以在全局级别(大多数时间是“窗口”级别)处理这些事件,直到您使用正确的HTML元素注册侦听器来侦听正确的事件,否则这将无效。例如,按钮触发“点击”事件,例如 document.getElementById('mybutton').addEventListener('click', function() { console.log('my button clicked'); }); 只要您成功选择此按钮,并绑定“click”事件侦听器,您就可以了。但是如果您的元素选择器错误,或者您正在尝试收听错误的事件,那么这将无效。 就页面的容量而言,内容越多,页面加载时间越多。也可以将其视为SEO视角。