gpt4 book ai didi

javascript - Aurelia 多个应用程序在多个页面

转载 作者:行者123 更新时间:2023-11-29 10:09:42 25 4
gpt4 key购买 nike

我正在为一个用 PHP (Phalcon)、MySQL 和 JQuery 开发的大型网站制作第一个产品版本。它不是基于 API 的,尽管会有一个 API 可用于某些事情。稍微过时的堆栈是由于该项目在几年前首次制作原型(prototype),出于我不想让您厌烦的原因,它花了数年时间才进入生产开发阶段。

我意识到硬页面重新加载是去年的事,但当导航到服务于不同目的的不同部分时,它们在这种规模的应用程序中也很有意义。目前它的工作原理是,一旦你到达一个部分,它的行为就像一个使用散列 URL 和 ajax 来更改一个或多个容器等中的内容的单页应用程序,尤其是在 SEO 不是问题的情况下。这一切目前都是用 JQuery 完成的,它开始变得有点困惑和难以维护。还有一些功能,例如导航栏中的通知等出现在网站的每个页面上,再次通过 ajax 更新和显示。

我的专长是 PHP。 Javascript 就不同了!但很明显,仅有 JQuery 是不够的。我需要一个 JS 框架来处理模板/绑定(bind)、合理深度的本地路由和带有 MV 的 http 等……?结构以更好地组织 JS 方面的事物并保持其可维护性。我非常不喜欢 Angular 1,当我发现 Angular 2 即将带来重大的重大变化时,我就放弃了学习它。我尝试了 Angular 2 beta,虽然更好,但它并没有让我满意。我之前偶然发现了 Aurelia alpha,虽然我没有机会玩它,但看视频和阅读它,它似乎是一个非常好的工具——语法很好,为现在和 future 而设计很快。现在,在第 1 版 beta 中,有更多的文档和资源可用于学习它,我觉得尽早开始并在这个项目中使用它相当舒服。

我非常了解 Aurelia 可以做什么,而且我还有很多东西要学。然而,我目前最大的绊脚石是弄清楚如何构建它并将其整合到这个项目中。

整合

  1. 网站的每个部分都需要不同的 Aurelia 应用
  2. 每个页面可能需要多个 Aurelia 应用
  3. 所有页面都需要一些 Aurelia 应用

我找到了一个 article by Patrick Walters这似乎解释了如何通过在元素上调用应用程序时命名应用程序来完成此操作; <body aurelia-app="main" start="app">

然后设置一个共享的 main.js;

aurelia.start().then(a => {
let start = a.host.attributes.start.value;
a.setRoot(start);
});

这似乎有道理,所以我尝试了一下,但将调用放在 div 而不是正文中。这不适用于 host无法解决任何问题(我的 IDE 在我运行它之前告诉我)。我们这里不需要主机名/端口信息,所以我认为作者的意思是替换 host与元素?但具体如何呢?

如有任何关于此类集成的进一步建议,我们将不胜感激。

我在SO上看到过类似问题的答案,但是好像没有重用main.js但复制它似乎不正确。

结构

我试着将带有 src 的文件移动到子目录中,以将文件拆分成一些清晰的结构。我能让它工作的唯一方法是为配置中的每个路径添加一个命名路径,例如"welcome*": "dist/welcome/welcome*", .这是最好/唯一的方法吗?

最佳答案

我认为您的问题没有正确答案。只有您能够决定哪种策略更适合您的情况。据我所知,您可以使用 Aurelia 实现此策略。但是,我不确定 main.js 的重用。

您可以使用以下方法在特定标签内加载 aurelia 应用:

aurelia.start().then(() => aurelia.setRoot('my-root', document.getElementById('some-element'));

如果你想在同一页面加载多个应用程序,你需要 2 个 main.js 文件。本帖Multiple Aurelia apps on one page在同一页面中有一个非常有用的两个应用程序示例。

在我看来,共享同一页面的应用程序应该有一个项目结构,这意味着只有一个 config.js,src 文件夹,dist 文件夹等。不共享同一页面的应用程序应该有不同的项目结构,使用不同的 config.js、src 文件夹、dist 文件夹(如有必要,使用不同的 Aurelia 版本)。这保证了一个应用程序相对于另一个应用程序的独立性,从而防止了重大更改。

当然,这只是我的看法。您可以等待 aurelia 人员的进一步指示,他们总是在附近。

希望这对您有所帮助!

关于javascript - Aurelia 多个应用程序在多个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35690272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com