代码之家  ›  专栏  ›  技术社区  ›  bellotas

使用Javascript在Angular中创建RouterLink

  •  0
  • bellotas  · 技术社区  · 6 年前

    我正在尝试使用类似于的javascript方法 routerLink 在HTML中,但使用Javascript。

    我试过了 window.location 但结果不一样,因为这个命令刷新网站,使其从一个URL跳转到另一个URL。是否有可能从一个组件跳到另一个组件 路由器链接 是吗(不提神)?

    解决方案

    我是在要求 router.navigateByUrl('/url')

    2 回复  |  直到 6 年前
        1
  •  0
  •   Guerric P    6 年前

    这个 routerLink 的指令内部实现不使用 window.location API,但是 window.history 美国石油学会 window.history.pushState() 功能更精确( Source ).

    每个SPA框架都是如此。

        2
  •  0
  •   Shilly    6 年前

    它是 window.location.hash 不需要重新加载就可以更改。如果你不想惹麻烦的话,那也可以用来做水疗 history.pushState()

    window.addEventListener( 'hashchange', event => {
      console.log( `should render page: ${ window.location.hash }` )
    });
    <a href="#/home">Home</a>
    <a href="#/page1">Page 1</a>
    <a href="#/page2">Page 2</a>
    <a href="#/page3">Page 3</a>

    相比之下,这确实有其他缺点 历史pushState() ,比如搜索引擎优化等等。但这是进行单页应用程序路由的最简单方法。所以这取决于你在建什么,是否足够。

    如果您使用的是角度,只需使用角度提供的布线。