【问题标题】:Angular routing considerations角度路由注意事项
【发布时间】:2020-01-11 02:31:33
【问题描述】:

我有一些与角度路由相关的注意事项,我想知道它们是否都正确。

假设我有一条路线({path:'/home', component:HomeComponent})。

要导航到这个路径(/home),我可以使用 3 种方法,例如:

1) 在浏览器栏中输入网址

2) 在父组件模板(本例中为 AppComponent)中插入 routerlink 指令

3) 在父组件类(本例为app.component.ts)中使用navigate方法,this.router.navigate(['/home'])。

routerLink 和 navigate 方法做同样的事情,它们导航到 /home 路由(浏览器 url 被更新)并且管理这个路由的组件(HomeComponent)将被显示。

routerLink 和 navigate 都将相同的数组(路由的相同路径)作为参数,这与路由定义 {path:'/home', component:HomeComponent} 中的路径字段值一致。

通常,routerLink 和 router-outlet 必须始终插入到父路由模板中,即在父组件模板中。

一切都正确,还是我写的内容存在概念错误?

谢谢

【问题讨论】:

    标签: angular ionic-framework ionic4


    【解决方案1】:

    我在您对路由器工作原理的理解中发现了一个概念性错误。

    navigate 方法默认导航到绝对路径,从路由开始(不过你可以提供可选的relativeTo 选项)。 routerLink 指令导航到相对路径(相对于放置它的组件)。

    除此之外,您对路由器的理解对我来说似乎是正确的。

    【讨论】:

    • 谢谢,因此当我使用导航方法并且不插入 relativeTo 选项时,我总是将完整的绝对路径作为参数插入到导航方法数组中。对吗?
    • 然而,在我的例子中,1)this.router.navigate(['/home']) 和 2)
    • 你说的很对,领先的/确保绝对正确。
    【解决方案2】:

    对我来说,除了你忘记枚举的 navigateByUrl('/home') 之外,关于角度导航的概念,你所说的和我所知道的一样......

    【讨论】:

    • 我不明白你的回答。请给我解释一下好吗?
    • 我对您理解 Angular 中的路由表示满意,除了 3 种在 Angular 中实现此功能的方法外,您忘记列出不采用数组的“navigateByUrl()”方法在参数中,但只是一个简单的路径名称,用于在其上导航
    猜你喜欢
    • 1970-01-01
    • 2015-06-13
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 2019-10-19
    相关资源
    最近更新 更多