Vue: "рд╕рдВрдХреНрд░рдордг" рдФрд░ "рдХреАрдк-рд╕рдЬреАрд╡" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдЕрдкреНрд░реИрд▓ 2019  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vuejs/vue

рд╕рдВрд╕реНрдХрд░рдг

реи.рем.резреж .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 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bdedardel picture bdedardel  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

wufeng87 picture wufeng87  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

guan6 picture guan6  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

aviggngyv picture aviggngyv  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

loki0609 picture loki0609  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ