Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Unter welchen Umständen wird der Lebenszyklus einer Komponente vor dem Destory ausgelöst?

Kann es beim Routing eines Sprungs ausgelöst werden? Ich habe festgestellt, dass die Funktion in beforeDestory nicht ausgelöst wurde, als ich einen Routensprung machte, aber es gab einen Code, der ausgeführt werden musste, bevor die Komponente zerstört wurde.
https://jsfiddle.net/44w37p34/ Ein Freund hat mir gerade eine Demo geschickt. Ich habe festgestellt, dass seine Vorher-Destory ausgelöst wurde, als die Route sprang, aber meines hat nie funktioniert

天蓬老师天蓬老师2686 Tage vor1189

Antworte allen(2)Ich werde antworten

  • 漂亮男人

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

    找到原因了,之前给router-view加了个keep-alive导致组件缓存了,所以不会触发beforeDestory和destoryed

    Antwort
    0
  • 習慣沉默

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

    我试了一下,切换路由的时候能触发执行beforeDestroy方法,示例如下。

    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");
            }
        };

    Antwort
    0
  • StornierenAntwort