Vue: Π£Ρ‚Π΅Ρ‡ΠΊΠ° памяти ΠΏΡ€ΠΈ использовании "ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°" ΠΈ "поддСрТания активности"

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 7 Π°ΠΏΡ€. 2019  Β·  5ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: vuejs/vue

ВСрсия

2.6.10

Бсылка для воспроизвСдСния

https://codepen.io/aaronbird/pen/JVRKwa

ДСйствия ΠΏΠΎ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡŽ

Я написал дСмо:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>demo</title>
    <style>
      .link {
        cursor: pointer;
        user-select: none;
      }
    </style>
  </head>
  <body>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>

    <div id="app">
      <transition>
        <keep-alive include="foo">
          <component :is="target" @change="onChange"></component>
        </keep-alive>
      </transition>
    </div>
    <script>
      const Foo = {
        name: "foo",
        template: `<div class="link" @click="$emit('change', 'bar')">Go to Bar</div>`
      };
      const Bar = {
        name: "bar",
        template: `<div class="link" @click="$emit('change', 'foo')">Go to Foo</div>`
      };
      Vue.component("foo", Foo);
      Vue.component("bar", Bar);
      const app = new Vue({
        data: {
          target: "foo"
        },
        methods: {
          onChange(target) {
            this.target = target;
          }
        }
      }).$mount("#app");
    </script>
  </body>
</html>

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
1 НаТмитС Β«Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ мусор» ΠΈ Β«Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ снимок ΠΊΡƒΡ‡ΠΈΒ» (снимок 1).
2 НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ слСва 10 Ρ€Π°Π·, Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ мусор» ΠΈ Β«Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ снимок ΠΊΡƒΡ‡ΠΈΒ» (снимок 2).
3 НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ слСва 10 Ρ€Π°Π·, Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ мусор» ΠΈ Β«Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ снимок ΠΊΡƒΡ‡ΠΈΒ» (снимок 3).

Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ «снимок» выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

снимок 1:

снимок 2:

снимок 3:

ПослС 100 Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ:

VueComponent Π½Π΅ пСрСрабатываСтся, это ошибка?

Π§Ρ‚ΠΎ оТидаСтся?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это происходит, это ошибка?

Π§Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ происходит?

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡ΠΈΡ‰Π΅Π½ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ‚Π΅Π» ΡƒΠ·Π½Π°Ρ‚ΡŒ новости ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ - ΠΏΠΈΠ°Ρ€ Π΅ΡΡ‚ΡŒ, Π½ΠΎ каТСтся ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹ΠΌ?

ВсС 5 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― ΠΏΠΎΡΠΌΠΎΡ‚Ρ€ΡŽ Π½Π° это.

Если ΠΌΡ‹ ΡƒΠ΄Π°Π»ΠΈΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΡƒΠ·Π΅Π», всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ сохранятся Π² ΠΊΠ΅ΡˆΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΡƒΠ·Π»Π΅ vnode. Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΡƒΡ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. Π±ΡƒΠ΄Ρƒ ΠΊΠΎΠΏΠ°Ρ‚ΡŒ большС

Π£ мСня Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΡƒΡ‚Π΅Ρ‡ΠΊΠΎΠΉ памяти, см. Https://github.com/bootstrap-vue/bootstrap-vue/issues/4214

Π― попытался ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ jsfiddle, Π½ΠΎ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, ΠΊΠ°ΠΊ воспроизвСсти ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

Π­ΠΉ, Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ новости? это обновлСния ΡƒΠΆΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ с основной Π²Π΅Ρ‚ΠΊΠΎΠΉ? Π£ мСня Ρ‚Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.

Π― Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ‚Π΅Π» ΡƒΠ·Π½Π°Ρ‚ΡŒ новости ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ - ΠΏΠΈΠ°Ρ€ Π΅ΡΡ‚ΡŒ, Π½ΠΎ каТСтся ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹ΠΌ?

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ