vue-router creates always a new Component instance

后端 未结 3 631
一整个雨季
一整个雨季 2021-01-13 04:01

I found an issue in vue-router which triggers me a lot. Always when I switch between my routes, a new instance of the component is created. Further the old instances are not

3条回答
  •  北荒
    北荒 (楼主)
    2021-01-13 04:50

    Always when I switch between my routes, a new instance of the component is created.

    That's expected. you can keep instanes alive and re-use them with the component, but that's usually not necessary and if so, requires special attention to re-initiate all local state of re-used components where necesseray.

    Creating a fresh instance is much cleaner and therefore the default behaviour.

    Further the old instances are not deleted and are running in background!

    That's not expected. Previous instances are destroyed.

    setInterval(() => {console.log('Instance ' + this._uid + ' of Foo is running')}, 500);
    

    Well, since this intervall callback contains a reference to the component instance, it can't be garbage collected by the browser, So you are keeping them alive, not Vue.

    Without that intervall, I woudl expect the instance to be garbage collected after the router destroyed them.

提交回复
热议问题