HM-31. Добавлен роутинг для страниц (#9)

This commit is contained in:
Nikolay
2020-07-14 20:18:49 +03:00
committed by GitHub
parent 521a80c1e3
commit 4ab8b1e273
15 changed files with 197 additions and 52 deletions

View File

@ -0,0 +1,41 @@
import EmitService from './EmitService';
import {parse} from 'querystring';
const ROUTE_CHANGE = 'routeChange';
class RouteService extends EmitService {
constructor () {
super();
this.history = window.history;
this._events[ROUTE_CHANGE] = [];
}
getUrlData = () => {
return {
url: location.pathname,
query: parse(location.search.slice(1)),
};
}
generateNext = () => {
this.next(ROUTE_CHANGE, this.getUrlData());
}
init = () => {
this.generateNext();
}
goTo = (url) => {
this.history.pushState({}, '', url);
this.generateNext();
}
onChange = (listener) => {
this.subscribe(ROUTE_CHANGE, listener);
}
}
const routeService = new RouteService();
export default routeService;