没有任何 DOM 元素的 Aura 组件

Aura component without any DOM element?

本文关键字:Aura 组件 元素 DOM 任何      更新时间:2023-09-26

在Aura.js"入门"页面上(目前已关闭,因此这是一个Google缓存链接),它说以下内容:

在应用程序启动时启动组件的另一种方法是 显式将列表传递给 App.Start 方法。例:

`app.start([{ name: 'hello', options: { el: '#hello' } }]);`

所有列出的组件必须至少具有名称和选项。 定义,其中 name 是要启动的组件的名称,并且 options.el 是一个 DOM 选择器,用于定位 DOM 元素,该元素将是 组件的根目录。

因此,Aura似乎要求每个模块/组件都必须具有关联的DOM元素。这是对的吗?

在我的应用程序中,我想有一些模块,这些模块纯粹用于运行不应与任何 DOM 元素关联的长后台计算。它们将计算结果发送到处理显示的其他模块。

我喜欢Aura背后的哲学.js(调解器/模块+ MVC),但我真的不想过多地绕过它。任何见解将不胜感激。也许我误解了什么?也许对我来说有更好的框架?

谢谢!

该组件需要一个关联的 DOM 元素,但它不要求 DOM 元素在页面上可见,只能在 DOM 中访问。您可以创建一个放置不可见组件的位置,如下所示:

$("body").append('<div id="invisbleComponents" style="display:none"></div>');

然后,您可以创建一个方法来启动组件并自动将它们转储到不可见的div 中:

var startComponent = function(c) {
    $('<div data-aura-component="' + c + '" id="' + c + 'Options"></div>').appendTo("#invisibleComponents);
    app.start([{ name: c, options: { el: '#' + c + 'Options' } }]);
};

因此,要启动一个名为"myComponent"的组件,您只需调用:

startComponent('myComponent');