【问题标题】:Architecture ExtJS 5 for Single page web applications用于单页 Web 应用程序的架构 ExtJS 5
【发布时间】:2015-03-13 03:49:27
【问题描述】:

架构 ExtJS 5 用于单页 Web 应用程序的正确方法是什么。

  • ExtJS 是否适用于“单页 Web 应用程序 (SPA)”?我们没有多个标记页面来将不同的 JS 文件引用到不同的 url。或者更确切地说,我们在 SPA 中如何最好地使用 ExtJS?
    • 详细说明:在 www.domain/home.html 我可以参考tab.js,它会加载一个选项卡布局,然后用户点击“about us”链接,这将加载一个 www.domain/about.html,这里我指的是 aboutTree.js,它将在左侧面板上加载树小部件。这看起来很容易。我可以创建一个新的 JS 文件,其中包含完整的 store、model、OnReady(),如 sencha 文档 examples 所示。
  • 大多数客户主要如何使用 Sencha ExtJS? 作为应用程序某些部分的小部件,还是整个应用程序由 Sencha ExtJS 驱动?
  • 一个完整的 Web 应用程序可以仅由 ExtJS 驱动吗? 我尝试了一个 Sencha Touch 示例,用于移动网站,它可以使用单个 Url 导航到新页面(示例: Sencha FiddlePractice Site)。但这对于 Web 应用程序是否可行?是否有任何示例可供我参考如何使用仅使用 Sencha ExtJS 在页面之间导航。
  • 友好的 URL: 如果我遵循这个结构,我尝试了移动网站“Practice Site”(只处理关于和主页链接)我网站中的所有页面都将始终有 @ 987654328@ url,我怎样才能让它有友好的 url,比如/about, /contact 等等?

这里ExtJS Architecture for Multi Page Application 有类似的问题,但关注不同的问题。

【问题讨论】:

    标签: javascript extjs single-page-application friendly-url extjs5


    【解决方案1】:

    ExtJS 非常适合单页应用程序。这将是它更好的用途之一。我会按顺序回答。

    1. 在创建 SPA 时,您应该考虑通过 ajax 调用将数据拉入您的选项卡,如果这不是一个选项,并且您只有静态信息,您可以在面板中预设该 html。如果您像在第一部分中讨论的那样放弃 MVC 范例,最好将每个组件构建在单个 onReady 中。如果使用正确的 MVC/MVVM 范例,您将希望在每个组件下设置大部分应用程序,例如单独设置存储、单独模型并将它们全部调用到主 application.js 并使用您的控制器来管理您的应用程序的逻辑.在这两种情况下,您仍然应该只调用一个索引文件并允许 ExtJS 管理您的应用程序,而不是拥有多个 html 页面。
    2. ExtJS 几乎完全用于创建由 ExtJS 在前端完全驱动的完整应用程序。该平台有如此多的功能,如果您选择使用它,没有理由使用它之外的任何东西。
    3. 是的,ExtJS 可以完全驱动您的应用程序。建议进行一些备份设置以动态提取数据,否则您将只有一个静态页面。这是 ExtJS Extjs 5 Guide Router 中的路由功能示例
    4. 就像在上一节中一样,路由器将为您的应用程序创建友好的 url。看看路由器就知道了。

    从查看您所引用的内容来看,最好摆脱拥有多个 html 页面并允许 ExtJS 执行其应做的事情来维护和控制您的整个应用程序。

    【讨论】:

    • 在公共存储库上是否有工作示例应用程序可用于下载和调试完整流程?
    • 这些示例是我们一个好的开始,但是查看我发布的指南页面,如果您下载 sencha cmd,它可以生成一个您可以玩的框架应用程序。 ExtJS 的文档是您能找到的最好的文档。 Sencha Cmd 在您的应用程序上运行时还将调试和缩小 Extjs 以消除 Extjs 中的大量开销,并且只提取您使用的组件。 dev.sencha.com/ext/5.1.0/examples
    • 这些示例完全断开,就像每个示例都是独立的,没有路由,导航我的意思是这些文档中的端到端流程实现
    • 还应该提到 Saki 的页面,它对于更多信息非常有用:extjs.eu/ext-examples/#route-mvvm
    猜你喜欢
    • 2013-02-20
    • 2013-02-21
    • 1970-01-01
    • 2016-10-07
    • 2011-09-10
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 2015-07-12
    相关资源
    最近更新 更多