【问题标题】:ui router vs ngroute for sinlge page app单页应用程序的ui路由器与路由
【发布时间】:2015-12-08 00:25:19
【问题描述】:

我正在开始一个新的 Angular 项目(单页应用程序),其中将包含复杂的视图(对话框、向导、弹出窗口、加载程序),尽管目前确切的要求还不是很清楚。

我应该预先使用 ui.router 吗?或者我应该从 ngRoute 开始,然后在需要时更改为 ui.router ?

ui.router 比 ngRoute 有什么好处?有哪些限制可能使我选择 ui.router 代替?

根据我的研究,ui.router 似乎比 ngRoute 做得更多,我会尽量避免复杂性。

我读了What is the difference between angular-route and angular-ui-router?,但并没有真正帮助(我是一个完全有角度的菜鸟)。

不过,我在 js、jquery、html 方面有很好的技能。

【问题讨论】:

  • 预先使用 ui-router。它与内置的 ng-route 一样易于使用,但好处是它具有更多功能,可以在以后派上用场。 (在渲染视图之前解析数据,将自定义数据添加到视图......等)
  • 但是 ngRoute 提供了所有相同的渲染、自定义数据功能,不是吗?
  • 哦,确实如此。我认为您线程中的链接完美地总结了额外的功能,尤其是嵌套视图是 ui-router 的一大优势。既然你已经知道你的应用中有复杂的视图,那你为什么要选择 ng-route 呢?学习曲线?这在 ui-route imo 中完全相同。

标签: javascript jquery angularjs html single-page-application


【解决方案1】:

我建议继续使用 ui.router,为什么?

  • 它几乎和 ngRoute 一样复杂

  • 它将更好地允许您在另一个页面中的页面、弹出窗口或容器中使用相同的视图

  • 更易读的代码

    /book/{{book.name}}/chapter/{{chapter.name}}

    book.chapter({chapter : chapter.name})

  • 随着您深入了解 Angular,您会更多地观察到 ui.router 的强大功能。

尽量保持简单,因为你是一个“有角的菜鸟”:-)。

【讨论】:

  • 这真的很有帮助,但是我对 ui.router 的 ngRoute 有什么限制吗?
  • 不,我没有看到任何(你不用担心)。
  • 相反,我不得不做一些变通方法,以便在我最近的一项任务中重用模态窗口中的视图。而且解决方案不如我用 ui.router 做的那么好。
【解决方案2】:

我建议从 uiRouter 开始,它可以(几乎)完成 ngRouter 可以做的所有事情以及更多(例如嵌套路由、视图等)。我认为 ngRouter 唯一具有但 uiRouter 没有的是可选的 URL 参数。

【讨论】:

  • 你对 ui 路由器一无所知(我意识到你必须得到很多......仍然值得)。如果您将 uiRouter 参数留空,它将很高兴地继续该状态,但没有该参数的值。您甚至可以将它们“排除”在 URL 之外:github.com/angular-ui/ui-router/wiki/…
猜你喜欢
  • 2019-03-05
  • 2013-10-26
  • 2014-10-08
  • 2014-11-25
  • 1970-01-01
  • 1970-01-01
  • 2014-11-12
  • 1970-01-01
  • 2018-04-04
相关资源
最近更新 更多