Vue: рдПрдХрд╛рдзрд┐рдХ рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕реНрд▓реЙрдЯ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ (рдЕрдорд╛рдиреНрдп рдбрд╛рдпрдирд╛рдорд┐рдХ рддрд░реНрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐)

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

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

2.6.10

рдкреНрд░рдЬрдирди рд▓рд┐рдВрдХ

https://github.com/tbutcaru/v-issue-multiple-dynamic-slot-names

рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛

  1. рдХреНрд▓реЛрди рдЗрд╕ рд░реЗрдкреЛ: https://github.com/tbutcaru/v-issue-multiple-dynamic-slot-names
  2. рднрд╛рдЧреЛ: npm install
  3. рднрд╛рдЧреЛ: npm run serve

рдХреНрдпрд╛ рдЙрдореНрдореАрдж рд╣реИ?

рдПрдХрд╛рдзрд┐рдХ рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕реНрд▓реЙрдЯ рдирд╛рдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рджреА рдЧрдИ рд╣реИ:

Invalid dynamic argument expression: attribute names cannot contain spaces, quotes, <, >, / or =.#[headerslot]>Header slot</template>
    Default slot
    <template #[footerslot]

рдпрджрд┐ рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реНрд▓реЙрдЯ рдирд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╕реНрдерд┐рд░ рдмрдирд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛), рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореЗрд░реА рдЬрд╛рдВрдЪ
  • рдлрд╝рд╛рдЗрд▓: node_modules/vue-template-compiler/build.js
  • рдкрдВрдХреНрддрд┐: 2563 ( attrs.forEach(function (attr) { рдЕрдВрджрд░) рдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреЗрддрд╛рд╡рдиреА рджреА:
warn$1('--------------->> ' +  attr.name);
рдЬрд╛рдВрдЪ рдХреЗ рдкрд░рд┐рдгрд╛рдо:
  1. рдХреЗрд╡рд▓ рдПрдХ рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕реНрд▓реЙрдЯ рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ: рдЙрд╕ рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕реНрд▓реЙрдЯ рдирд╛рдо рдХрд╛ рдореВрд▓реНрдп #[headerslot]
  2. рджреЛ рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕реНрд▓реЙрдЯ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ: рдкрд╣рд▓рд╛ рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕реНрд▓реЙрдЯ рдирд╛рдо рдХрд╛ рдорд╛рди рд╣реИ
#[headerslot]>Header slot</template>
    Default slot
    <template #[footerslot]

рддреЛ, рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдорд▓реНрдЯреАрдкрд▓ рдбрд╛рдпрдирдорд┐рдХ рд╕реНрд▓реЙрдЯ рдирд╛рдо рд╣реЛрдиреЗ рдкрд░ рд╕рд┐рд░реНрдл рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХрдИ рдХреЛрд╢рд┐рд╢реЛрдВ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдорд▓реНрдЯреА рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕реНрд▓реЙрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдорд┐рд▓рд╛ред рдЬрдм рдореИрдВ рдбрд╛рдпрдирд╛рдорд┐рдХреНрд╕ рд╕реНрд▓реЙрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд░реВрдЯ рдПрд▓реАрдореЗрдВрдЯ рдореЗрдВ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдБ, рддреЛ рдпрд╣ рдХрд╛рдо рдореЗрдВ рдЖрддрд╛ рд╣реИ:

рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдпрд╣рд╛рдВ рдкреБрди :

   <template #[slot1]>
       <p>slot test</p>
   </template>
   <template #[slot2]>
       <p>slot test2</p>
    </template>

// got "Invalid dynamic argument expression: attribute names cannot contain spaces, quotes, <, >, / or ="

рдЗрд╕ рдХрд╛рдо: рдпрд╣рд╛рдБ рдкреБрди :

   <template #[slot1]>
       <p key="1">slot test</p>
   </template>
   <template #[slot2]>
       <p key="2">slot test2</p>
    </template>

// work fine

рдореБрдЭреЗ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖрдпрд╛ред

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдХреЗрд╡рд▓ рддрдм рдЙрдкрд▓рдмреНрдз рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рддрд░реНрдХ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
<template v-slot:[dynamicSlotName]> ... </template>

рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдХреЗрд╡рд▓ рддрдм рдЙрдкрд▓рдмреНрдз рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рддрд░реНрдХ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
<template v-slot:[dynamicSlotName]> ... </template>

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдХрд┐ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╡рд╣реА the рд╣реЛ

рд╣реЗрд▓реЛ рд╕рдм рд▓реЛрдЧ!

рдЗрд╕рдореЗрдВ рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ? рдореБрдЭреЗ рдЕрднреА рднреА рдпрд╣рд╛рдБ 2.6.11 рдореЗрдВ рд╕рдорд╕реНрдпрд╛

рдХрдИ рдХреЛрд╢рд┐рд╢реЛрдВ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдорд▓реНрдЯреА рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕реНрд▓реЙрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдорд┐рд▓рд╛ред рдЬрдм рдореИрдВ рдбрд╛рдпрдирд╛рдорд┐рдХреНрд╕ рд╕реНрд▓реЙрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд░реВрдЯ рдПрд▓реАрдореЗрдВрдЯ рдореЗрдВ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдБ, рддреЛ рдпрд╣ рдХрд╛рдо рдореЗрдВ рдЖрддрд╛ рд╣реИ:

рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдпрд╣рд╛рдВ рдкреБрди :

   <template #[slot1]>
       <p>slot test</p>
   </template>
   <template #[slot2]>
       <p>slot test2</p>
    </template>

// got "Invalid dynamic argument expression: attribute names cannot contain spaces, quotes, <, >, / or ="

рдЗрд╕ рдХрд╛рдо: рдпрд╣рд╛рдБ рдкреБрди :

   <template #[slot1]>
       <p key="1">slot test</p>
   </template>
   <template #[slot2]>
       <p key="2">slot test2</p>
    </template>

// work fine

рдореБрдЭреЗ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖрдпрд╛ред

@ davis90 рдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреНрдпреЛрдВ рдЧрд▓рддрд┐рдпрд╛рдБ рдЗрддрдиреА рднреНрд░рд╛рдордХ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд░ рдЧрдпрд╛

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕