2017-03-09 2 views
3

typescript, preact 및 preact-router를 사용하여 웹 응용 프로그램의 프론트 엔드 부분을 구조화하는 방법을 알아 내려고합니다. 나는 먼 길을왔다. 그러나 나는 여전히 프락트 - 라우터 (preact-router)로 프로그래밍 방식으로 탐색 (리다이렉트)하는 방법을 알아야한다. history.replaceState(null, null, '/#/redirectedUrl');을 할 수는 있지만 위치 표시 줄의 URL을 변경하는 동안 preact-router는 새 URL로 라우팅하지 않습니다.preact-router로 프로그래밍 방식으로 탐색하는 방법은 무엇입니까?

프리 톨 라우터를 사용할 때 프로그래밍 방식으로 탐색하는 가장 좋은 방법은 무엇입니까? 'preact-router'에서 기능 route를 가져 오기

답변

3

갈 수있는 방법입니다

import { route } from 'preact-router'; 
route('/url/to/rout/to'); 
+0

당신은 너무 실제로 원래의 접근 방식과 아주 가까이 있었다, 단지'replaceState는()'새로운 하나를 추가하는 대신 현재의 기록 항목을 개정 , 그래서 preact-router는 그것을 볼 수 없다 (수정은 이벤트를 발생시키지 않는다). 'history.pushState (null, null,'/ #/redirectedUrl ')' –

+1

@JasonMiller는 실제로 history.pushState (null, null, ')를 사용하는 경우에도 라우팅 할 사전 라우터를 얻을 수 없습니다./#/url ');'. 타이밍의 문제 일 수 있습니까? 어디에서 전화를 걸 수 있습니까? 현재 컴포넌트의'render()'메소드에서이 호출을하고있다. –

+0

이제는 내가 잘못 생각한 걸 알고 있습니다. pushState()도 이벤트를 발생시키지 않으므로 라우터도 응답하지 않습니다. 함께 갔던'location.hash' 할당이 아마도 가장 좋을 것입니다. 또는 여러분이 추상화 된 것을 유지하고자한다면'preact-router'에서'route' 함수를 가져오고'route ('/ url')'를 호출 할 수 있습니다. –