recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Dans quelles circonstances le cycle de vie du composant est-il déclenché avant Destory?

Peut-il être déclenché lors du routage d'un saut ? J'ai découvert que la fonction dans beforeDestory n'était pas déclenchée lorsque j'effectuais un saut d'itinéraire, mais qu'il y avait un morceau de code qui devait être exécuté avant la destruction du composant. Que dois-je faire ?
https://jsfiddle.net/44w37p34/ Un ami vient de m'envoyer une démo. J'ai découvert que son beforeDestory se déclenchait lorsque la route sautait, mais le mien n'a jamais fonctionné

.
天蓬老师天蓬老师2784 Il y a quelques jours1246

répondre à tous(2)je répondrai

  • 漂亮男人

    漂亮男人2017-07-05 10:48:40

    J'ai trouvé la raison. J'ai déjà ajouté un keep-alive à la vue du routeur, provoquant la mise en cache du composant, donc beforeDestory et destoryed ne seront pas déclenchés

    répondre
    0
  • 習慣沉默

    習慣沉默2017-07-05 10:48:40

    Je l'ai essayé, et cela peut déclencher l'exécution de la méthode beforeDestroy lors du changement d'itinéraire. L'exemple est le suivant.

    const Home = {
            template: `
          <p>
          <p class="section">Some section foo</p>
          <p class="section">Some section foo</p>
          <p class="section">Some section foo</p>
          <p class="section">Some section foo</p>
        </p>
      `,
            mounted() {
               console.log("Home mounted");
            },
            beforeDestroy() {
                console.log("Home destroy");
            }
        };
    
        const Test = {
            template: `
                <p>
                  <p class="section">Some section test</p>
                  <p class="section">Some section test</p>
                  <p class="section">Some section test</p>
                  <p class="section">Some section test</p>
                </p>
      `,
            mounted() {
                console.log("Test mounted");
            },
            beforeDestroy() {
                console.log("Test destroy");
            }
        };

    répondre
    0
  • Annulerrépondre