From 3dd9604f3e9491b7806b9a7286e58ce4714ab3e1 Mon Sep 17 00:00:00 2001 From: "Manu Mtz.-Almeida" Date: Fri, 7 Sep 2018 00:53:47 +0200 Subject: [PATCH] perf(router): prevent initializaing page twice --- core/src/components/route-redirect/route-redirect.tsx | 11 +++++++---- core/src/components/router/router.tsx | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/core/src/components/route-redirect/route-redirect.tsx b/core/src/components/route-redirect/route-redirect.tsx index 6ffd072fe5..257821e96e 100644 --- a/core/src/components/route-redirect/route-redirect.tsx +++ b/core/src/components/route-redirect/route-redirect.tsx @@ -1,4 +1,4 @@ -import { Component, Event, EventEmitter, Prop } from '@stencil/core'; +import { Component, Event, EventEmitter, Prop, Watch } from '@stencil/core'; @Component({ tag: 'ion-route-redirect' @@ -39,13 +39,16 @@ export class RouteRedirect { */ @Event() ionRouteRedirectChanged!: EventEmitter; + @Watch('from') + @Watch('to') + propDidChange() { + this.ionRouteRedirectChanged.emit(); + } + componentDidLoad() { this.ionRouteRedirectChanged.emit(); } componentDidUnload() { this.ionRouteRedirectChanged.emit(); } - componentDidUpdate() { - this.ionRouteRedirectChanged.emit(); - } } diff --git a/core/src/components/router/router.tsx b/core/src/components/router/router.tsx index cecf5d09a9..16f52a8c6a 100644 --- a/core/src/components/router/router.tsx +++ b/core/src/components/router/router.tsx @@ -66,10 +66,11 @@ export class Router { console.debug('[ion-router] found nav'); await this.onRoutesChanged(); + } + componentDidLoad() { this.win.addEventListener('ionRouteRedirectChanged', debounce(this.onRedirectChanged.bind(this), 10)); this.win.addEventListener('ionRouteDataChanged', debounce(this.onRoutesChanged.bind(this), 100)); - this.onRedirectChanged(); } @Listen('window:popstate')