我试图使用类似于routerLink的Javascript方法,但使用javascript。
我尝试了window.location,但结果并不一样,因为这个命令刷新网站,从一个网址跳转到另一个网址。是否有可能像routerLink那样从组件跳转到另一个组件(而不是刷新组件)?
溶液
我在找router.navigateByUrl('/url')
发布于 2018-11-15 14:48:49
routerLink的指令内部实现不使用window.location API,而是使用window.history API,这是更精确的window.history.pushState()函数(来源)。
每个SPA框架也是如此。
发布于 2018-11-15 14:54:18
您可以在不重新加载的情况下更改window.location.hash。如果您不想处理history.pushState(),也可以使用它来创建SPA。
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>
与history.pushState()相比,这确实还有其他的缺点,比如搜索引擎优化等等。但是这是做单页应用程序路由的最简单的方法。所以这取决于你在建造什么,它是否足够。
如果您使用的是角,只需使用路由角提供的。
https://stackoverflow.com/questions/53321987
复制相似问题