рдпрд╣ https://github.com/vuejs/vue/issues/7740#issuecomment -371309357 рдХрд╛ рдЕрдиреБрд╡рд░реНрддреА рд╣реИ
рд╡рд░реНрддрдорд╛рди рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ:
<template slot-scope>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВslot-scope
рд╕реАрдзреЗ рд╕реНрд▓реЙрдЯ рддрддреНрд╡ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИредрдПрдХ рдирдпрд╛ v-scope
рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдШрдЯрдХреЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
<comp v-scope="scope">
{{ scope.msg }}
</comp>
рдпрд╣ slot-scope
рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдХреЗ рд▓рд┐рдП <comp>
рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░реЗрдЧрд╛ ( <comp>
рд╕реНрдХреЛрдк рд╡реИрд▓реНрдпреВ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде)ред рддреЛ рдпрд╣ deconstructing рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
<comp v-scope="{ msg }">
{{ msg }}
</comp>
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЯреАрдо рдиреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рд╕реНрд▓реИрдХ рдкрд░ https://github.com/vuejs/vue/issues/7740#issuecomment -371309357 рдореЗрдВ рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдЙрд╕ рдкрд░ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдм рдЪреИрдЯ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдпрд╣рд╛рдБ рдПрдХ рдирдП рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдкреАрдЫреЗ рддрд░реНрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
slot-scope
рдХреЛ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛ v-
рдЙрдкрд╕рд░реНрдЧ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ) рдХреНрдпреЛрдВрдХрд┐ slot
рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рд╕реНрд▓реЙрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕реБрд╕рдВрдЧрдд рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ . slot
рдмрджрд▓реЗ рдореЗрдВ рдПрдХ рдЧреИрд░-рдирд┐рд░реНрджреЗрд╢рдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧ рдЫрд╛рдпрд╛ рдбреЛрдо рдорд╛рдирдХ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрд▓реЙрдЯ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░реЗред рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдЬрдм рдорд╛рдирдХ рдореЗрдВ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдХреБрдЫ рд╣реИ рддреЛ рдЕрдкрдиреЗ рд╕рдорд╛рдирд╛рдВрддрд░ v-slot
рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдореВрд▓ рд░реВрдк рд╕реЗ, slot-scope
рдХреЛ рдХреЗрд╡рд▓ <template>
рддрддреНрд╡реЛрдВ рдкрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдЕрдореВрд░реНрдд рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡рд╣ рд╡рд░реНрдмреЛрдЬрд╝ рдерд╛ - рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ <template>
рдХреЛ рд▓рдкреЗрдЯреЗ рдмрд┐рдирд╛ рд╕реАрдзреЗ рд╕реНрд▓реЙрдЯ рддрддреНрд╡ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреЗрд╢ рдХреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рд╕реЗ рдШрдЯрдХ рдкрд░ рд╕реАрдзреЗ slot-scope
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛
рдореИрдВрдиреЗ slot-scope
рд╕рдВрд╢реЛрдзрдХ рдпрд╛ рд╡рд┐рд╢реЗрд╖ рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рддрд╛рдХрд┐ рд╣рдо рдЗрд╕реЗ рд╕реАрдзреЗ рдПрдХ рдШрдЯрдХ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдЗрд╕рдХреА рд╕реНрд▓реЙрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рди рддреЛ рдПрдХ рд╕рдВрд╢реЛрдзрдХ рдпрд╛ рдЙрдкрд╕рд░реНрдЧ рдЬреИрд╕реЗ $
рд╕рд╣реА рдлрд┐рдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдбрд┐рдЬрд╝рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╢реЛрдзрдХ рдХреЛ рдХреЗрд╡рд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдмрдХрд┐ рдПрдХрд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╡рд┐рд╢реЗрд╖ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕рдВрдкреВрд░реНрдг рд╕рд┐рдВрдЯреИрдХреНрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИред
рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╣рдо рдЕрдзрд┐рдХ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдХрддрд░рд╛рддреЗ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрдерд┐рд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдореВрд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдиреНрдпреВрдирддрдо рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЪреАрдЬреЗрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпреВрдЬрд░рд▓реИрдВрдб рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрд╛рдлреА рдХрдо рд╢реЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЙрдЪрд┐рдд рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
v-scope
рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ: рдпрд╣ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдирд╛рдо (рдЬреЛ рдПрдХ рдбрд┐рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреВрд░реНрд╡рддрд╛ рдХреЗ рдирд╣реАрдВ: рдпрд╣ v-for
рдХреЗ рдЙрдкрдирд╛рдо рднрд╛рдЧ рдХреА рддрд░рд╣ рд╣реА рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ v-scope
рдПрдХ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ v-for
рд╕рд╛рде рдПрдХ рд╣реА рд╢рд┐рд╡рд┐рд░ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рдЖрдВрддрд░рд┐рдХ рджрд╛рдпрд░реЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдмрдирд╛рддрд╛ рд╣реИред
рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ v-scope
рдирд╛рдордХ рдПрдХ рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдФрд░ рдПрдХ рдШрдЯрдХ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ v2 рдореЗрдВ рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпрдХреНрд╖ DOM рдЬреЛрдбрд╝рддреЛрдбрд╝ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдШрдЯрдХреЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рджреБрд░реНрд▓рдн рд╣реИ, рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ v-scope
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рднрд╛рд╡ рдиреНрдпреВрдирддрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреЗрд╡рд▓ рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдЕрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдПрдХ рд╕реНрд▓реЙрдЯ рдирд╛рдо рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╣реА рдШрдЯрдХ рдкрд░ рдХрдИ рдирд┐рд░реНрджреЗрд╢реЛрдВ v рджрд╛рдпрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рдШрдЯрдХ рдХреЛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдЬреЛ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ рдпрд╛ рдпрджрд┐ рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ
рдУрд╡рд░рд░рд▓, рдпрд╣ рд░реЗрдВрдбрд░рд▓реЗрд╕ рдШрдЯрдХреЛрдВ рдХреЗ рдПрдкреАрдЖрдИ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛, рдЬреЛ рд╕рдордп рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ
рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреВрдВ, рддреЛ v-scope
рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп:
<foo>
<template slot-scope="{ item }">{{ item.id }}</template>
</foo>
рд╣рдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
<foo v-scope="{ item }">{{ item.id }}</foo>
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдХрд╛рдлреА рдХрдо рд╢реЛрд░ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдорд╛рдорд▓рд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирдпрд╛ рдирд┐рд░реНрджреЗрд╢ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдУрд╡рд░рдХрд┐рд▓ (рдЬреЛ рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдХрд╛рдлреА рдЕрд▓рдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ v-for
рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдШрдЯрдХреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдиреАрдЪреЗ <slot>
рддрд░реНрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ)ред рдПрдХ рдФрд░ рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдЗрд╕ рд░реЗрдкреЛ рдореЗрдВ v-scope
рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХреЗрд╡рд▓ рджреЛ рдШрдЯрдирд╛рдПрдВ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдмрдЯреНрд░реА (https://github.com/vuejs/vue/issues/5269) рдХреЗ рдбреЗрдЯрд╛ рджрд╛рдпрд░реЗ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реА рд╣реИрдВред #issuecomment-288912328, https://github.com/vuejs/vue/issues/6913), рдЬреИрд╕реЗ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ with
рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗрдВ рдпрд╣ рдкрд╕рдВрдж рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╢реНрди рд╢реЗрд╖ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рдирд╛рдорд┐рдд рд╕реНрд▓реЙрдЯреНрд╕ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдирд╛рдорд┐рдд рд╕реНрд▓реЙрдЯ рдХреЛ рдЙрд╕реА рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЗрд╕реЗ <template>
рдкрд░ рднреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
<comp v-scope="scope">
{{ scope.msg }} <!-- default slot, inheriting from the scope from above -->
<template slot="someName" v-scope="otherScope">
<p>{{ otherScope }}</p>
<div> whatever</div>
</template>
</comp>
рд╣рдо рдЗрд╕ рдЕрд╡рд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ sot-scope
рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ Vue 3 рдореЗрдВ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ v-scope
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ ( v-scope
рдирд┐рд░реНрджреЗрд╢ рдФрд░ slot-scope
) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рд┐рдбреЗрдиреЛрдЯ: рдЕрдм, рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рд▓реЛрдЧреЛрдВ рдХреЛ рддрддреНрд╡реЛрдВ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рд╕реЗ рдЖрднрд╛рд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░
рдирд┐рд░реНрджреЗрд╢, рдХрд┐ рд╡реЗ рдирд╛рдорд┐рдд рд╕реНрд▓реЙрдЯ рдореЗрдВ otherScope
рдФрд░ scope
рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдирд╛рдо рдХреЗ рд▓рд┐рдП @LinusBorg , рдПрдХ рддрд░реНрдХ v-scope:slotName
ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдШрдЯрдХреЛрдВ рдкрд░ рдЗрд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ @Justineo рдиреЗ рдЬреЛ рдХрд╣рд╛ рд╣реИ рдЙрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИ (https://github.com/vuejs/vue/issues/9180#issuecomment-446168296)
рд╕рд┐рдбреЗрдиреЛрдЯ: рдЕрдм, рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рд▓реЛрдЧреЛрдВ рдХреЛ рддрддреНрд╡реЛрдВ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рд╕реЗ рдЖрднрд╛рд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░
рдирд┐рд░реНрджреЗрд╢, рдХрд┐ рд╡реЗ рдирд╛рдорд┐рдд рд╕реНрд▓реЙрдЯ рдореЗрдВ рдЕрдиреНрдп рд╕реНрдХреЛрдк рдФрд░ рд╕реНрдХреЛрдк рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣реИ рдирд╛? ЁЯдФ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╕реНрд▓реЙрдЯ рд╕реНрдХреЛрдк рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣реИ рдирд╛? ЁЯдФ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╕реНрд▓реЙрдЯ рд╕реНрдХреЛрдк рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ
рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдШреЛрдВрд╕рд▓рд╛ рдирд╣реАрдВ рдмрдирд╛рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реЗ рд╕рд╣реЛрджрд░ рд╕реНрд▓реЙрдЯ рд╣реИрдВред рдореИрдВрдиреЗ рдШрдЯрдХ рдкрд░ v-scope
рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрд▓реЙрдЯ рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдирд╛рдорд┐рдд рд╕реНрд▓реЙрдЯ (рдЬреЛ рдПрдХ рднрд╛рдИ рд╕реНрд▓реЙрдЯ рд╣реИ) <template slot="someName">
рджреЗрдЦреЛ? рдпрд╣ рднреНрд░рд╛рдордХ рд╣реИ ^^
@LinusBorg рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рд╣реИ:
v-scope
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрд▓реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВредslot
+ slot-scope
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ v-scope
рдФрд░ slot-scope
рдХрд╛ рд╣реЛрдирд╛ рдЕрд╕рдВрдЧрдд/рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЕрд╡рдЧрдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рд╣рдо рд╡рд░реНрддрдорд╛рди рдбрд┐рдЬрд╛рдЗрди рдкрд░ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗред
рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реБрдП, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рд╕рдорд╛рдзрд╛рди рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ:
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрди рд╕рднреА рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ! ЁЯдЮ $event
рд▓рд┐рдП v-on
, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирд╛рдорд┐рдд рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдПрдХ рдорд┐рд╕рд╛рд▓ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рдЕрдзрд┐рдХ рднреНрд░рдо рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рд╣рдореЗрдВ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
v-scope
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рд╕реНрд▓реЙрдЯ рд╕реНрдХреЛрдк рдХреЛ $slot
рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
<TodoList :todos="todos">
{{ $slot.todo.text }}
<template slot="metaBar">
You have {{ $slot.totals.incomplete }} todos left.
</template>
</TodoList>
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдЪрд╛рдЗрд▓реНрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
<ul>
<li v-for="todo in todos">
<slot :todo="todo" />
</li>
</ul>
<div>
<slot name="metaBar" v-bind="itemsStats" />
</div>
рдЬрдм рд╕реНрд▓реЙрдЯреНрд╕ рдХреЛ рдиреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ $slot
рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрд▓реЙрдЯ рдбреЗрдЯрд╛ рдХреЛ рдорд░реНрдЬ рдХрд░ рджреЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕рдмрд╕реЗ рднреАрддрд░реА рд╕реНрд▓реЙрдЯреНрд╕ рдУрд╡рд░рд░рд╛рдЗрдб рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд▓реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрдВ:
<Outer>
<Middle>
<Inner>
{{ $slot }}
</Inner>
</Middle>
</Outer>
рд╡рд┐рд▓рдп рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
$slot = {
...outerSlotData,
...middleSlotData,
...innerSlotData
}
рдЖрдк рдирд╛рдорд╕реНрдерд╛рди рдУрд╡рд░рд▓реИрдк рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд/рдЖрд╢реНрдЪрд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ 99.9% рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреЛрдИ рдореБрджреНрджрд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
<UserData id="chrisvfritz">
My email is {{ $slot.user.email }}, but you can reach Sarah at
<UserData id="sdras">
{{ $slot.user.email }}
</UserData>.
</UserData>
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдиреЗрд╕реНрдЯрд┐рдВрдЧ рд╕реНрдХреЛрдк рдХреЗ рдмрд╛рд╡рдЬреВрдж, $slot.user
рдХрд╛ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдорд╛рди рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛрдиреЛрдВ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреИрд╕реЗ рдХрд┐:
<UserData id="chrisvfritz">
<template slot-scope="me">
<UserData id="sdras">
<template slot-scope="sarah">
<CollaborationPageLink :user-ids="[me.user.id, sarah.user.id]">
View your collaboration history
</CollaborationPageLink>
</template>
</UserData>
</template>
</UserData>
рдЗрди рджреБрд░реНрд▓рдн рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрднреА рднреА slot-scope
рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рдПрд╕реНрдХреЗрдк рд╣реИрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рд▓реЗрдХрд┐рди v-scope
рдЕрднреА рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреВрдВ, рддреЛ рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ $slot
рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдкреВрд░рд╛ рдХрд░ рдЪреБрдХрд╛ рд╣реЛрдЧрд╛ред
рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд▓реЙрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдПрдХрдорд╛рддреНрд░ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ $slot
, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░рд╣рддреЗ рд╣реБрдП
рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡реЗ рдХрд┐рд╕ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдХрд┐рд╕ рд╕реНрд▓реЙрдЯ (рдЦрд╛рддреЛрдВ) рдХреЛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдПрдЧреА ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ v-scope
, рдпрд╣ рдорд╛рдирдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рднреНрд░рдо рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ v-for
рдЬреИрд╕рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдЬреЛ рд╕реНрдХреЛрдкреНрдб рд╕рдВрджрд░реНрдн рдЧреБрдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рдФрд░ рд╕рд╣рдЬ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ , рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реАрдЦрдиреЗ рдХреА рдЕрд╡рд╕реНрдерд╛ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдИ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрд▓реЙрдЯ рдХреЗ рд╕рд╛рде рдЬреЛ рд╕рднреА рд░рд╛рдЬреНрдп рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдХреМрди рд╕рд╛ рдШрдЯрдХ рдХреБрдЫ рд░рд╛рдЬреНрдп рд╕реЗ рдЖрдпрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ slot-scope
рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдПрдХ рдиреБрдХрд╕рд╛рди рдХреА рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрдХреЙрдкреНрдб рд╕реНрд▓реЙрдЯ рджреЗрдЦрддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рд░рд╛рдЬреНрдп рдкреНрд░рджрд╛рддрд╛ рдкреИрдЯрд░реНрди рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рджреГрдврд╝рддрд╛ рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рд╣реИред рдпрд╣рд╛рдБ рдореЗрд░рд╛ рддрд░реНрдХ рд╣реИ ред рддреЛ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХрдИ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрдХреЙрдкреНрдб рд╕реНрд▓реЙрдЯреНрд╕ рдХреЛ рдЕрдзрд┐рдХ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдВрдЯреА-рдкреИрдЯрд░реНрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ ред
рдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреНрд╖реЗрддреНрд░ рдХрд╛рдлреА рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ Vue рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХреЗрд╡рд▓ $slot
рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ рд╕рд┐рд░реНрдл рдПрдХ рд╡рд╕реНрддреБ рд╣реИред
рдПрдХ $
-prefixed рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рд╡реЗрдм рдШрдЯрдХ рд╕реНрд▓реЙрдЯ API рдкрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ $slot
рдПрдХ Vue рдЪреАрдЬрд╝ рд╣реИред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдЕрдХреНрд╕рд░ рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд░рдирд╛ <slot v-bind="user" />
, рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╡рд░реНрдг рдХреЛ рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ slot-scope="user"
рдХреЗ рдмрдЬрд╛рдп slot-scope="{ user }
ред рдпрд╣ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрднрд╡ рд╣реБрдЖ рд╣реИред рд╕рдорд╕реНрдпрд╛ рддрдм рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдЬрдм рдШрдЯрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ _рдЕрдиреНрдп рдбреЗрдЯрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдлрд┐рд░ рдЙрдирдХреЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВ: рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдореЗрдВ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВ рдпрд╛ рдЗрд╕ рдирдИ рд╕рдВрдкрддреНрддрд┐ рдХреЛ user
рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдмрд╛рдзреНрдп рдХрд░реЗрдВ, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрдо рд╕рдВрдмрдВрдз рд╣реЛред рди рддреЛ рдПрдХ рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, $slot
рдШрдЯрдХреЛрдВ рдХреЛ рдХрдо рднрд╡рд┐рд╖реНрдп-рд╕рдмреВрдд рдмрдирд╛рдиреЗ рдХреЗ рдкреНрд░рд▓реЛрднрди рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ , рдХреНрдпреЛрдВрдХрд┐ рдЬрдмрдХрд┐ $slot
рдЕрднреА рднреА $slot.user
рд╕реЗ рдЫреЛрдЯрд╛ рд╣реИ, рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ $slot
рд░реВрдк рдореЗрдВ рдЕрд▓рд┐рдпрд╛рд╕ рдХрд░рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрджрд░реНрдн рдЦреЛ рджреЗрддреЗ рд╣реИрдВ
slot-scope
рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рдХрддрдо рдЦреЛрдЬрдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рд╛рдЬреНрдп рдкреНрд░рджрд╛рддрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдкреИрд░ рдореЗрдВ рдЦреБрдж рдХреЛ рдЧреЛрд▓реА рдорд╛рд░ рд░рд╣рд╛ рд╣реИ рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИредрдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ $
-prefixed рд╕рдВрдкрддреНрддрд┐ рдкреВрд░реЗ Vue рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЕрдВрджрд░ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд▓реЙрдЯ рдореЗрдВ $slot
рдХреЛ рдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдХреЗ рднреНрд░рдо рдкреИрджрд╛ рдХрд░реЗрдЧрд╛ рдФрд░ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрди рд╕реНрд▓реЙрдЯ рд╕реНрдХреЛрдк рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдЦрдбрд╝реЗ рд╣реИрдВред рдпрд╣ рдПрдХ рддрд░рд╣ рдХрд╛ рд╕рдореНрдореЗрд▓рди рд╣реИ (рдореЗрд░реЗ рдЕрд╡рд▓реЛрдХрди рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдХрд┐ $
-prefixed рдЧреБрдг рдкреНрд░рддреНрдпреЗрдХ Vue рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдЦрдбрд╝реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣реАрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЬреАрд╡рдирдЪрдХреНрд░ рд╣реБрдХ, рд╡рд┐рдзрд┐рдпрд╛рдБ рдФрд░ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕ рд╡рд┐рд╢реЗрд╖ $slot
рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рдкрд░рдВрдкрд░рд╛ рдЯреВрдЯ рдЬрд╛рдПрдЧреАред
@chrisvfritz рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрд▓реЙрдЯреНрд╕ рдФрд░ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯреНрд╕ рдХреЗ рдПрдХреАрдХреГрдд рд╣реЛрдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдХреБрдЫ рдРрд╕рд╛ рдЬрд┐рд╕реЗ v3 рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реНрд▓реЙрдЯ рд╕рд╛рдордЧреНрд░реА рдЪрд╛рдЗрд▓реНрдб рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ $slots
рдпрд╛ $scopedSlots
рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП? рдПрдХрдорд╛рддреНрд░ рд╕рдВрдХреЗрдд $slot
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдХрд╣реАрдВ рдореМрдЬреВрдж рд╣реИ (рдкреЗрдбрд╝ рдХреЗ рдиреАрдЪреЗ рдХрд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ), рдЬреЛ slot-scope
(рдЬреЛ рдХреЗрд╡рд▓ рд╕реНрд▓реЙрдЯ рд░реВрдЯ рдкрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рдЬрд┐рддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдпрджреНрдпрдкрд┐ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рд╣рдо рд╕рдВрдХрд▓рдХ рдореЗрдВ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд▓реЙрдЯ $slots
рд╕реЗ $scopedSlots
рдЬрдм рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ $slot
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ ...
рдХреНрдпрд╛ рдЗрд╕рдХрд╛ JSX рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рдХреЛрдИ рдмрдбрд╝рд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛?
@donnysim рдирд╣реАрдВ, рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ
$
-prefixed рд╕рдВрдкрддреНрддрд┐ рдкреВрд░реЗ Vue рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЕрдВрджрд░ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд▓реЙрдЯ рдореЗрдВ$slot
рдХреЛ рдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдХреЗ рднреНрд░рдо рдкреИрджрд╛ рдХрд░реЗрдЧрд╛ рдФрд░ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрди рд╕реНрд▓реЙрдЯ рд╕реНрдХреЛрдк рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдЦрдбрд╝реЗ рд╣реИрдВред
@Justineo рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рднреА рдпрд╣реА рд╕реЛрдЪрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ $event
рдФрд░ рдХреЛрдИ рднреА рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА _is_ рдорд┐рд╕рд╛рд▓ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдмреВрдд рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдорддреМрд░ рдкрд░ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЖрдирдВрдж рд▓реЗрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реНрд▓реЙрдЯ рд╕рд╛рдордЧреНрд░реА рдЪрд╛рдЗрд▓реНрдб рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ
$slots
рдпрд╛$scopedSlots
рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП?
@yyx990803 рдмрдврд╝рд┐рдпрд╛ рд╕рд╡рд╛рд▓! рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдЬреЛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдпрд╣ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ ( $slot
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрд▓реЙрдЯ), рд╣рдо рд╕рднреА рд╕реНрд▓реЙрдЯ рдХреЛ рдПрдХ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рднреА $scopedSlots
$slots
рдХреЛ рдЧреЗрдЯрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ
for (const slotName in vm.$scopedSlots) {
// Don't override existing slots of the same name,
// since that's _technically_ possible right now.
if (vm.$slots[slotName]) continue
Object.defineProperty(vm.$slots, slotName, {
get: vm.$scopedSlots[slotName],
enumerable: true,
configurable: true,
writable: true
})
}
рдЗрд╕ рддрд░рд╣, рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ:
<A>
<B>
{{ $slot.foo }}
</B>
</A>
рд╣рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
// Assume new render helper:
// _r = mergeSlotData
_c('A', {
scopedSlots: _u([
{
key: 'default',
fn: function(_sd) {
var $slot = _r($slot, _sd)
return [
_c('B', {
scopedSlots: _u([
{
key: 'default',
fn: function(_sd) {
var $slot = _r($slot, _sd)
return [_v(_s($slot.foo))]
},
},
]),
}),
]
},
},
]),
})
рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝реЗрдЧрд╛ рдХрд┐ foo
<A>
рд╕реЗ рдЖрддрд╛ рд╣реИ рдпрд╛ <B>
, рдХреНрдпреЛрдВрдХрд┐ рдЙрди рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдВрджрд░ this.$slots.default
рдФрд░ this.$scopedSlots.default(someData)
рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рдПрдХ рдпреБрдЧрд▓ рдЪреЗрддрд╛рд╡рдиреА:
рдиреЗрд╕реНрдЯреЗрдб рд╕реНрд▓реЙрдЯ рд╡рд╛рд▓реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдХреБрдЫ рд╣реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреЛрдк рд╣реИрдВ, $slot
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди slot-scope
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╣реИред
рдореИрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ $slots
/ $scopedSlots
рд╕реЗ рдЕрдзрд┐рдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдирдП рдпрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЧреБрдг рд╣реЛрдиреЗ рд╕реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдкреИрдЯрд░реНрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдирд╛рдорд┐рдд $slots
рдФрд░ $scopedSlots
рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЧрдП рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рд╡рд┐рдЪрд╛рд░?
рд╣рдо рдЗрд╕реЗ
$event
рдФрд░ рдХреЛрдИ рднреА рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
@chrisvfritz рдУрд╣, рдореИрдВ $event
рдЪреАрдЬрд╝ рд╕реЗ рдЪреВрдХ рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдореНрдореЗрд▓рди рдХрд╛ рдЕрдкрд╡рд╛рдж рд╣реИ (рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ ЁЯШЕ рд╣реИ), $event
рдХреЗрд╡рд▓ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реАрдорд┐рдд рджрд╛рдпрд░реЗ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ (рдХреЗрд╡рд▓ рд╡реА-рдмрд╛рдЗрдВрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рдЕрдХреНрд╖рд░ рдХреЗ рдЕрдВрджрд░ рдФрд░ рдХреЛрдИ рдШреЛрдВрд╕рд▓рд╛ рдирд╣реАрдВ)ред
рдФрд░ $scopedSlots
рдХреЛ $slots
рдкрд░ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрдерд╛ рдХрд┐ рд╕реНрд▓реЙрдЯ рдФрд░ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рд╣реИрдВ рдФрд░ Vue рдХрд╛ рдЙрдирдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдирд╛рдо рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕реНрд▓реЙрдЯ рдФрд░ рдПрдХ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреА рдкреВрд░реНрддрд┐ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдХреЛрдк рд╕реНрд▓реЙрдЯ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ Vue рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕реА рдирд╛рдо рдХреЗ рд╕реНрд▓реЙрдЯ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдирд╛ тАЛтАЛрдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ $slots
рдФрд░ $scopedSlots
рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╣рдореЗрд╢рд╛ рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ/рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред , рдЬреИрд╕реЗ рд╕рднреА рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрд▓реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдХрд┐рд╕реА рдПрдХрд▓ рдЖрдЗрдЯрдо рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рд╣реИ (рд╣рдордиреЗ рдЕрдкрдиреЗ рдбреЙрдХреНрд╕ рдФрд░ рд╕реНрдЯрд╛рдЗрд▓ рдЧрд╛рдЗрдб AFAIK рдореЗрдВ рдЗрд╕ рдкрд░ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ) рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ 3.0 рдореЗрдВ рд╕реНрд▓реЙрдЯ рдХреА рдПрдХрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди 2.x рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ рдХрд╛рдлреА рд╕рдордп рдкрд╣рд▓реЗ рд╕реЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред
рд╣рдо рдЙрдиреНрд╣реЗрдВ 3.0 рдореЗрдВ рд╕реНрд▓реЙрдЯ рдХреА рдПрдХрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди 2.x рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдлреА рд╕рдордп рдкрд╣рд▓реЗ рд╕реЗ рдЕрдиреБрдордд рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред
@ рдЬрд╕реНрдЯрд┐рдиреЛ рдореБрдЭреЗ рдЧрд▓рддрдлрд╣рдореА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 2.x рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реВрдВ - рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдлрд╝реЙрд▓рдмреИрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛, рдЬрд╣рд╛рдВ $slots
рдФрд░ $scopedSlots
рд╕рдорд╛рди рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рднреА рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ slot-scope
рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
<div>
Default slot
<template slot-scope="foo">
Default scoped slot {{ foo }}
</template>
</div>
рдЕрднреА рднреА рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рд╣реИ?
@chrisvfritz
рдореИрдВ рдЙрдиреНрд╣реЗрдВ 2.x рдореЗрдВ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдореИрдВ рдХрд╣ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ:
рдЧреЗрдЯрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ
$slots
рддрд╣рдд рд╕рднреА$scopedSlots
рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдПрдВ
рдЖрдк $slots.foo
рдХреЛ $scopedSlots.foo
рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдм рдЙрдиреНрд╣реЗрдВ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк $slots.foo рдХреЛ $scopedSlots.foo рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдм рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рд╕рдм рдХреБрдЫ (рд╕реНрд▓реЙрдЯ рдФрд░ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ) рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯреНрд╕ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реЛрдЧрд╛, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рдФрд░ рдмреЗрдХрд╛рд░ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рд╕реНрд▓реЙрдЯ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдШрдЯрдХ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрд▓реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдорд┐рд╢реНрд░рд┐рдд JSX рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИред
@donnysim рд╣рд╛рдВ рдореИрдВ https://github.com/vuejs/vue/issues/9180#issuecomment -447185512 рдореЗрдВ рдРрд╕реА рдЪрд┐рдВрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдпрд╣ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред
рдЖрдк
$slots.foo
рдХреЛ$scopedSlots.foo
рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдм рдЙрдиреНрд╣реЗрдВ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
@Justineo рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ _can_, рд╣рдо рдЗрд╕ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЬрдм рддрдХ $slots
рдкрд╣рд▓реЗ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реНрд▓реЙрдЯ рдХреА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдКрдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреЗрдЦреЗрдВ:
for (const slotName in vm.$scopedSlots) {
// Don't override existing slots of the same name,
// since that's _technically_ possible right now.
if (vm.$slots[slotName]) continue
Object.defineProperty(vm.$slots, slotName, {
get: vm.$scopedSlots[slotName],
enumerable: true,
configurable: true,
writable: true
})
}
@chrisvfritz
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
render (h) {
if (!this.$slots.default) {
return h(
'div',
this.items.map(item => this.$scopedSlots.default(item))
)
}
return h('div', this.$slots.default)
}
рдпрджрд┐ рдШрдЯрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ vm.$scopedSlots.default
, рддреЛ рдЙрд╕реЗ this.items
рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ item
s рдХреЛ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЕрдм рдЬрдмрдХрд┐ vm.$scopedSlot.default
рдЕрдм рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рд╣реИ рдФрд░ рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рд╕реНрд▓реЙрдЯ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
@ рдЬрд╕реНрдЯрд┐рдиреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдмрд╣реБрдд рджреБрд░реНрд▓рдн рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдкреИрдЯрд░реНрди рдмрджрд▓рдХрд░ рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реЛрдЧрд╛:
if (!this.$slots.default) {
рдкреНрд░рддрд┐:
if (this.$scopedSlots.default) {
рдпрд╛, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрднреА-рдХрднреА рдПрдХ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
if (!Object.getOwnPropertyDescriptor(this.$slots, 'default').value) {
рдореИрдВ рдЕрднреА рднреА рдЗрд╕реЗ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдорд╛рдиреВрдВрдЧрд╛ред рдкрд╣рд▓рд╛, рд╣рдордиреЗ рдХрднреА рднреА рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕реНрд▓реЙрдЯ рдФрд░ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг/рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрднреА рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЕрдиреБрдмрдВрдз рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдерд╛ред рджреВрд╕рд░рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рд╕реНрдХреЛрдк рдХрд┐рдП рдЧрдП рд╕реНрд▓реЙрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд╕реА рдирд╛рдо рдХреЗ рдЧреИрд░-рд╕реНрдХреЛрдк рд╡рд╛рд▓реЗ рд╕реНрд▓реЙрдЯ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдЪреНрдЫреЗ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд╕рд╛рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрднреА рднреА рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреЛрдкреНрдб/рдЧреИрд░-рд╕реНрдХреЛрдкреНрдб рд╕реАрдорд╛ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдереЗред
рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рд╣реИ? рд╕рд╛рде рд╣реА, рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕реНрд▓реЙрдЯ рдирд╛рдореЛрдВ рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рджреЗрдЦреЗ рд╣реИрдВ? рдпрд╛ рдЖрдк рдХрд┐рд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡рд╣рд╛рдБ _are_ рдЙрдкрдпреЛрдЧреА рдФрд░ рдЕрджреНрд╡рд┐рддреАрдп рдкреИрдЯрд░реНрди рд╕рдХреНрд╖рдо рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрднреА рд╕реАрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдиреНрд╣реЗрдВ Vue 3 рдореЗрдВ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд╣рдорд╛рд░реЗ рдирд┐рд░реНрдгрдп рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдирд╛рдо рд╡рд╛рд▓реЗ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдФрд░ рд╕реНрд▓реЙрдЯ рд╣реИрдВ
рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ред рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ Vue рдХреЗ рдкреВрд░реНрд╡ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдерд╛
рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ред рдФрд░ рдЕрдм рдореБрдЭреЗ рджреЛрдиреЛрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрд▓реЙрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реИ
рдФрд░ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рддрд╛рдХрд┐ рджреЗрд╡ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╕реНрд▓реЙрдЯ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХреЗред
рдФрд░ рдЕрдЧрд░ рдореБрдЭреЗ рд╕рд╣реА рдпрд╛рдж рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдирд╛рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ред
@chrisvfritz
рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдкреИрдЯрд░реНрди рдорджрджрдЧрд╛рд░ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднреНрд░рдо рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдмрд╕ рдХрд╣ рд░рд╣рд╛ рдерд╛, рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рддреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╣рдордиреЗ рдХрднреА рднреА рд╕реНрд▓реЙрдЯреНрд╕ рдФрд░ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯреНрд╕ рдХреЗ рдмреАрдЪ рд╕рдорд╛рди рдирд╛рдо рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдХрднреА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИред рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдлрд╝реЙрд▓рдмреИрдХ рддрд░реНрдХ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдореИрдВ рдЦреБрдж рдорд╛рдирддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╡реИрдз рдЙрдкрдпреЛрдЧ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдлрд╝реЙрд▓рдмреИрдХ рддрд░реНрдХ рдирд╣реАрдВ рд╕реАрдЦрд╛ ...
@posva рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
@Justineo рдЖрдкрдХреА рд░рд╛рдп рдореЗрдВ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдПрдЬ рдХреЗрд╕ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рджрд░реНрдж рд╣реЛрдЧрд╛, рдпрд╛ рдпрд╣ Vue 2.x рдореЗрдВ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ API рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ?
рдЗрд╕реЗ "рдЯреЛрдбреЛ" рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЖрдо рд╕рд╣рдорддрд┐ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП?
рдореИрдВ рдкрд┐рдЫрд▓реЗ рдПрдХ рд╣рдлреНрддреЗ рд╕реЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ @chrisvfritz рдХрд╛ $slot
рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд╕рдВрдж рд╣реИ рдФрд░ рдореИрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрд╡рд░реЛрдзрдХреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣рд╛рдБ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрднрд╡ рд╣реИ:
$scopedSlots
рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд▓реЙрдЯ рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛$slots
рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЦрд╛рд▓реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд▓реЙрдЯ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдЧрд╛редрддреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдордХрдХреНрд╖ рд╣реЛрдЧрд╛:
this.$slots.default
// would be the same as
this.$scopedSlots.default({} /* $slot */)
рдЙрдкрд░реЛрдХреНрдд рдЖрдВрддрд░рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде, $slots
рдФрд░ $scopedSlots
рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХреАрдХреГрдд рд╣реИрдВ рд▓реЗрдХрд┐рди рдкреАрдЫреЗ рдХреА рдУрд░ рд╕рдВрдЧрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП! рдЗрд╕рд╕реЗ 3.0 рддрдХ рдЖрд╕рд╛рди рдорд╛рдЗрдЧреНрд░реЗрд╢рди рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд $slot
рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдирдореВрдиреЗ:
<!-- list and item composition -->
<fancy-list>
<fancy-item :item="$slot.item"/>
</fancy-list>
<!-- hypothetical data fetching component -->
<fetch :url="`/api/posts/${id}`">
<div slot="success">{{ $slot.data }}</div>
<div slot="error">{{ $slot.error }}</div>
<div slot="pending">pending...</div>
</fetch>
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрдХреЛрдк рдорд░реНрдЬ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдкрд░ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ (рдпрд╛рдиреА рд╣рдореЗрд╢рд╛ slot-scope
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрдХреЙрдкреНрдб рд╕реНрд▓реЙрдЯ рд╣реИрдВ):
<!-- nested usage -->
<foo>
<bar slot-scope="foo">
<baz slot-scope="bar">
{{ foo }} {{ bar }} {{ $slot }}
</baz>
</bar>
</foo>
рдЖрдкрдХреЗ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, $slot
рдХрд┐рд╕ рд╕реНрд▓реЙрдЯ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИ?
@Akryum рдпрд╣ { ...foo, ...bar }
ред
@Justineo @Akryum рд╣рдореНрдо рдореИрдВ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЗрд╕ рднреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ... рд╣рдо рдмрдирд╛ slot-scope
рдПрдХ рд╕реНрд▓реЙрдЯ рдХреЗ рдореВрд▓ рддрддреНрд╡ рдкрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп, рдпрд╛рдиреА рдпрд╣рд╛рдВ foo
рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рд╕реНрд▓реЙрдЯ рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реИ <foo/>
, bar
<bar/>
рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ $slot
рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ <baz/>
... рдЕрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдПрдХ рдЧрд▓рддреА рдереА, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╣рдЬ рдЙрдкрдпреЛрдЧ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛:
<!-- nested usage -->
<foo slot-scope="foo">
<bar slot-scope="bar">
<baz slot-scope="baz">
{{ foo }} {{ bar }} {{ baz }}
</baz>
</bar>
</foo>
рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╣рдЬ рдЙрдкрдпреЛрдЧ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛
рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣рдорддред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
```рджреГрд╢реНрдп
<FieldValidation field="login" slot-scope="{ value, setValue, error }">
<LoginInput
:value="value"
:error="error"
@input="setValue"
/>
</FieldValidation>
<FieldValidation field="password" slot-scope="{ value, setValue, error }">
<PasswordInput
:value="value"
:error="error"
@input="setValue"
/>
</FieldValidation>
7988a554 рдФрд░ 5d52262f . рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдВрдж
рд╕рд╛рд░рд╛рдВрд╢:
рд╕рднреА рд╕реНрд▓реЙрдЯ рдореЗрдВ $slot
рдЪрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВред ( $slot
рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рд╕реНрд▓реЙрдЯ рдХреЛ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
рд╕рд╛рдорд╛рдиреНрдп рд╕реНрд▓реЙрдЯ рд╕рд╣рд┐рдд рд╕рднреА рд╕реНрд▓реЙрдЯ рдЕрдм рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ this.$scopedSlots
рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ this.$slots.default
рдореМрдЬреВрдж рд╣реИ, рддреЛ this.$scopedSlots.default()
рдЕрдкрдирд╛ рдореВрд▓реНрдп рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред рдпрд╣ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╣рдореЗрд╢рд╛ this.$scopedSlot
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЕрдм рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реНрд▓реЙрдЯ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрд╣ 3.0 рдХреЗ рд╕рд╛рде рднреА рд╕рдВрдЧрдд рд╣реИ рдЬрд╣рд╛рдВ рд╕рднреА рд╕реНрд▓реЙрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдордиреЗ рдЖрддреЗ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп this.$slots
)ред
slot-scope
рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ, рдирдП рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдХреЛрдИ рдкрд░рд┐рдЪрдп рдирд╣реАрдВред рд╣рдо рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдиреНрдпреВрдирддрдо рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдЯреВрдЯ-рдлреВрдЯ рдХреЛ 3.0 рдкрд░ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
@ yyx990803 рдХреНрдпрд╛ $slot
рд╕рднреА рдмрд╛рд╣рд░реА рд╕реНрд▓реЙрдЯ рд╕реНрдХреЛрдк рдХреЛ рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдХреЗрд╡рд▓ рдирд┐рдХрдЯрддрдо рд╕реНрд▓реЙрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ?
@Justineo рдХреЛрдИ рд╡рд┐рд▓рдп рдирд╣реАрдВ, рдмрд╕ рдирд┐рдХрдЯрддрдоред
рдореЗрд░реЗ рдкрд╛рд╕ рдЬрд┐рди рдРрдкреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рдЙрдирдореЗрдВ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдЙрдкрдпреЛрдЧ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ $slot
рд╢реЙрд░реНрдЯрд╣реИрдВрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрд▓реЙрдЯ рдорд░реНрдЬрд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рдЖрдзреЗ рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореВрд▓ рдШрдЯрдХ рдЖрдорддреМрд░ рдкрд░ рдХрдЪреНрдЪреЗ HTML рддрддреНрд╡реЛрдВ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрди рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдХреНрд╕рд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрд▓реЙрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
<MapMarkers :markers="cities">
<BaseIcon name="map-marker">
{{ $slot.marker.name }}
</BaseIcon>
</MapMarkers>
рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, <MapMarkers>
рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕реНрдХреЛрдк рд╕реНрд▓реЙрдЯ рд╣реИред <BaseIcon>
рдПрдХ рдЧреИрд░-рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕реНрд▓реЙрдЯ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, $slot
рд╡рд┐рд▓рдп рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдпрд╛ рдПрдХ рдЦрд╛рд▓реА рд╡рд╕реНрддреБ рд╣реЛрдЧреА, рдЬрд┐рд╕рд╕реЗ рдХреНрд▓рдВрдХрд┐рдпрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдлреИрдХреНрдЯрд░ рдордЬрдмреВрд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛:
<MapMarkers :markers="cities">
<template slot-scope="{ marker }">
<BaseIcon name="map-marker">
{{ marker.name }}
</BaseIcon>
</template>
</MapMarkers>
рддреЛ рдпрд╣рд╛рдБ рдореЗрд░реА рдЪрд┐рдВрддрд╛рдПрдБ рд╣реИрдВ:
рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирдореВрдиреЗ рд╕реЗ, рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ $slot
рдХреЗ рд▓рд╛рдн рдХрд╛ _most_ рдЦреЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рдЖрдВрддрд░рд┐рдХ рд╕реНрд▓реЙрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЕрдЪреНрдЫреЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдиреБрдХрд╕рд╛рди рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдПрдкреАрдЖрдИ рд╣реИред
UI рд▓рд╛рдЗрдмреНрд░реЗрд░реА v-html
рд╕рд╛рде рдкреНрд░реЙрдкреНрд╕ рдХрд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреА рд╣реИ, рдЬрд╣рд╛рдВ рд╕реНрд▓реЙрдЯ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдВрдЧреЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╢рд┐рдХрд╛рдпрддреЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ $slot
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдзрд╛рд░ рдШрдЯрдХреЛрдВ рд╕реЗ рдкрд░рд╣реЗрдЬ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд░рдЦрд╛ рдЬрд╛ рд╕рдХреЗ, рдЬрд┐рд╕рд╕реЗ рдХрдо рд░рдЦрд░рдЦрд╛рд╡ рдпреЛрдЧреНрдп рдХреЛрдб рд╣реЛ рд╕рдХреЗред
@ yyx990803 рдХреНрдпрд╛ рдЖрдкрдХреА рдореБрдЦреНрдп рдЪрд┐рдВрддрд╛ $slot
рд╡рд┐рд▓рдп рд╕реЗ рд╣реИ рдХрд┐ рдпрд╣ рдмрддрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рдШрдЯрдХ рд╕реНрд▓реЙрдЯ рдбреЗрдЯрд╛ рд╕реЗ рдЖрдпрд╛ рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдореЗрд░реЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдиреЗрд╕реНрдЯреЗрдб рд╕реНрдХреЛрдк рд╕реНрд▓реЙрдЯ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рд░рд╛рдЬреНрдп рдкреНрд░рджрд╛рддрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдереЗ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛ рд╣реИред рддреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╛рдорд┐рдд рд╕реНрд▓реЙрдЯ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реИрдз рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдмрд╣реБрдд рджреБрд░реНрд▓рдн рд╣реЛрдВрдЧреЗред рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рд▓рдп рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рд▓рд┐рдП рдпрд╣ рддрдп рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЦреЛрдЬрдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдФрд░ рдЬрдм рд╡реЗ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣реА slot-scope
рд▓рд┐рдП рдореМрдЬреВрдж рд╣реЛрдЧрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╕рдордЭреМрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдВ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИ: рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрдХреЛрдк рд╕реНрд▓реЙрдЯреНрд╕ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ $slot
рдирд┐рдХрдЯрддрдо рд╕реНрд▓реЙрдЯ рдХреЛ рджреЗрдЦреЗрдВ _ рдЬрд┐рд╕рдиреЗ рдПрдХ рд╕реНрдХреЛрдк рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реЛ? рдпрд╣ рдореЗрд░реА рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░рддреЗ рд╣реБрдП рд╕рдмрд╕реЗ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рд╡рд╛рд▓реЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░?
рд╡рд┐рд▓рдп рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░рдг рдЧреИрд░-рд╕реНрдкрд╖реНрдЯрддрд╛ рд╣реИ: рдХреЗрд╡рд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкрдврд╝рдХрд░, рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреМрди рд╕реА $slot
рд╕рдВрдкрддреНрддрд┐ рдХрд┐рд╕ рдкреНрд░рджрд╛рддрд╛ рдШрдЯрдХ рд╕реЗ рдЖрддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд╛рдЧрд░реВрдХ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╛рдирд╕рд┐рдХ рднрд╛рд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдЗрд╕реЗ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реЛрдВ рддреЛ рдпрд╣ рдареАрдХ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рд╕рдордп рдЖрдкрдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдкреВрд░рд╛ рд╕рдВрджрд░реНрдн рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднрд╡рд┐рд╖реНрдп рдХреЗ рдкрд╛рдардХ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛ рдФрд░ рдЕрдзрд┐рдХ рдХрдард┐рди рдмрдирд╛ рджреЗрддрд╛ рд╣реИ (рдЪрд╛рд╣реЗ рд╡рд╣ рдЖрдк рдпрд╛ рдЯреАрдо рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╕рджрд╕реНрдп рд╣реЛ)ред
$slot рдирд┐рдХрдЯрддрдо рд╕реНрд▓реЙрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рджрд╛рдпрд░рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ: рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдШрдЯрдХреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд╡рд┐рд▓рдп рд╕реЗ рднреА рдЕрдзрд┐рдХ рдирд┐рд╣рд┐рдд рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред
рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди slot-scope
рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдмрджрд▓ рд░рд╣рд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЙрдкрдирд╛рдо/рд╡рд┐рдирд╛рд╢ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдмрди рдЬрд╛рдП $slot
ред рддреЛ рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
<MapMarkers :markers="cities" slot-scope="{ marker }">
<BaseIcon name="map-marker">
{{ marker.name }}
</BaseIcon>
</MapMarkers>
рдпрд╣ рд╡рд┐рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЪрд░ рдХрд┐рд╕ рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рдЖрддреЗ рд╣реИрдВ, рдФрд░ рдЕрддреНрдпрдзрд┐рдХ рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИред (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 3.0 рдореЗрдВ рд╣рдо рд╢рд╛рдпрдж рдпрд╣реА рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ)
рдЕрднреА рд╣рдо рдЬрд┐рд╕ рдЕрдЬреАрдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЧреИрд░-рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдкрд░ slot-scope
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИ, рдФрд░ рдЕрдм рдпрд╣ рд╣рдореЗрдВ рдШрдЯрдХ рдкрд░ рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
3.0 рдореЗрдВ рдЗрд╕рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рднреА рдмрд╣реБрдд рднреНрд░рдо рдФрд░ рдкреНрд░рд╡рд╛рд╕рди рджрд░реНрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдирдИ рд╕рдВрдкрддреНрддрд┐, slot-alias
рдкреЗрд╢ рдХрд░рдХреЗ рд╕рдордп рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ - $slot
рдХреЛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдкрд░ рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдХрд░рдирд╛ред slot-scope
рд╡рд┐рдкрд░реАрдд, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдШрдЯрдХ рдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрд▓реЙрдЯ рдХрдВрдЯреЗрдирд░ рдкрд░ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ slot-scope
рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрдм <template>
рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) :
рдиреЗрд╕реНрдЯреЗрдб рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрд▓реЙрдЯ:
<MapMarkers :markers="cities" slot-alias="{ marker }">
<BaseIcon name="map-marker">
{{ marker.name }}
</BaseIcon>
</MapMarkers>
<foo slot-alias="foo">
<bar slot-alias="bar">
<baz slot-alias="baz">
{{ foo }} {{ bar }} {{ baz }}
</baz>
</bar>
</foo>
рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдирд╛рдорд┐рдд рд╕реНрд▓реЙрдЯ:
рдПрдХрдорд╛рддреНрд░ рдорд╛рдорд▓рд╛ рдЬрд╣рд╛рдВ рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╡рд░реНрдмреЛрдЬрд╝ рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕реНрд▓реЙрдЯреНрд╕ рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
<foo>
<template slot="a" slot-alias="a">
<bar slot-alias="b">
{{ a }} {{ b }}
</bar>
</template>
</foo>
(рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ slot-scope
рдФрд░ slot-alias
рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдо рд╡рд░реНрдмреЛрдЬрд╝ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ slot-scope
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдВ)
<foo>
<bar slot="a" slot-scope="a" slot-scope="b">
{{ a }} {{ b }}
</bar>
</foo>
рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЗрд╕реЗ рдПрдХ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рднреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, ()
(рдХреНрдпреЛрдВрдХрд┐ JSX рдореЗрдВ рд░реЗрдВрдбрд░ рдкреНрд░реЙрдкреНрд╕ рдЖрдорддреМрд░ рдкрд░ рдПрд░реЛ рдлрдВрдХреНрд╢рди рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ ()
):
<MapMarkers :markers="cities" ()="{ marker }">
<BaseIcon name="map-marker">
{{ marker.name }}
</BaseIcon>
</MapMarkers>
<foo ()="foo">
<bar ()="bar">
<baz ()="baz">
{{ foo }} {{ bar }} {{ baz }}
</baz>
</bar>
</foo>
рдЙрдкрд░реЛрдХреНрдд рдХреА рддреБрд▓рдирд╛ рд╕рдордХрдХреНрд╖ JSX рд╕реЗ рдХрд░реЗрдВ:
<foo>
{foo => (
<bar>
{bar => (
<baz>
{baz => `${foo} ${bar} ${baz}`}
</baz>
)}
</bar>
)}
</foo>
рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдмрд╛рдж рд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдЕрдм рдореВрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдирдпрд╛ рдзрд╛рдЧрд╛ рдЦреЛрд▓рдирд╛ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕рдорд╕реНрдпрд╛ рдХреЛ рддреЛрдбрд╝рдирд╛
рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реБрдП, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рд╕рдорд╛рдзрд╛рди рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ:
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрди рд╕рднреА рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ! ЁЯдЮ
$event
рд▓рд┐рдПv-on
, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирд╛рдорд┐рдд рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдПрдХ рдорд┐рд╕рд╛рд▓ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рдЕрдзрд┐рдХ рднреНрд░рдо рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рд╣рдореЗрдВ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПредрдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди
v-scope
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рд╕реНрд▓реЙрдЯ рд╕реНрдХреЛрдк рдХреЛ$slot
рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдЪрд╛рдЗрд▓реНрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
рдЬрдм рд╕реНрд▓реЙрдЯреНрд╕ рдХреЛ рдиреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ
$slot
рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрд▓реЙрдЯ рдбреЗрдЯрд╛ рдХреЛ рдорд░реНрдЬ рдХрд░ рджреЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕рдмрд╕реЗ рднреАрддрд░реА рд╕реНрд▓реЙрдЯреНрд╕ рдУрд╡рд░рд░рд╛рдЗрдб рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд▓реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрдВ:рд╡рд┐рд▓рдп рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
рдЖрдк рдирд╛рдорд╕реНрдерд╛рди рдУрд╡рд░рд▓реИрдк рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд/рдЖрд╢реНрдЪрд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ 99.9% рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреЛрдИ рдореБрджреНрджрд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдиреЗрд╕реНрдЯрд┐рдВрдЧ рд╕реНрдХреЛрдк рдХреЗ рдмрд╛рд╡рдЬреВрдж,
$slot.user
рдХрд╛ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдорд╛рди рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛрдиреЛрдВ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреИрд╕реЗ рдХрд┐:рдЗрди рджреБрд░реНрд▓рдн рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрднреА рднреА
slot-scope
рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рдПрд╕реНрдХреЗрдк рд╣реИрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рд▓реЗрдХрд┐рдиv-scope
рдЕрднреА рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреВрдВ, рддреЛ рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐$slot
рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдкреВрд░рд╛ рдХрд░ рдЪреБрдХрд╛ рд╣реЛрдЧрд╛редрд▓рд╛рдн
рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд▓реЙрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдПрдХрдорд╛рддреНрд░ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ
$slot
, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░рд╣рддреЗ рд╣реБрдПрдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡реЗ рдХрд┐рд╕ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдХрд┐рд╕ рд╕реНрд▓реЙрдЯ (рдЦрд╛рддреЛрдВ) рдХреЛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдПрдЧреА ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐
v-scope
, рдпрд╣ рдорд╛рдирдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рднреНрд░рдо рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣v-for
рдЬреИрд╕рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдЬреЛ рд╕реНрдХреЛрдкреНрдб рд╕рдВрджрд░реНрдн рдЧреБрдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИредрдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрдХреЛрдкреНрдб рд╕реНрд▓реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рдФрд░ рд╕рд╣рдЬ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ , рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реАрдЦрдиреЗ рдХреА рдЕрд╡рд╕реНрдерд╛ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдИ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрд▓реЙрдЯ рдХреЗ рд╕рд╛рде рдЬреЛ рд╕рднреА рд░рд╛рдЬреНрдп рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдХреМрди рд╕рд╛ рдШрдЯрдХ рдХреБрдЫ рд░рд╛рдЬреНрдп рд╕реЗ рдЖрдпрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ
slot-scope
рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдПрдХ рдиреБрдХрд╕рд╛рди рдХреА рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрдХреЙрдкреНрдб рд╕реНрд▓реЙрдЯ рджреЗрдЦрддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рд░рд╛рдЬреНрдп рдкреНрд░рджрд╛рддрд╛ рдкреИрдЯрд░реНрди рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рджреГрдврд╝рддрд╛ рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рд╣реИред рдпрд╣рд╛рдБ рдореЗрд░рд╛ рддрд░реНрдХ рд╣реИ ред рддреЛ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХрдИ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрдХреЙрдкреНрдб рд╕реНрд▓реЙрдЯреНрд╕ рдХреЛ рдЕрдзрд┐рдХ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдВрдЯреА-рдкреИрдЯрд░реНрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ редрдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреНрд╖реЗрддреНрд░ рдХрд╛рдлреА рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ Vue рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХреЗрд╡рд▓
$slot
рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ рд╕рд┐рд░реНрдл рдПрдХ рд╡рд╕реНрддреБ рд╣реИредрдПрдХ
$
-prefixed рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рд╡реЗрдм рдШрдЯрдХ рд╕реНрд▓реЙрдЯ API рдкрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐$slot
рдПрдХ Vue рдЪреАрдЬрд╝ рд╣реИредрд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдЕрдХреНрд╕рд░ рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд░рдирд╛
<slot v-bind="user" />
, рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╡рд░реНрдг рдХреЛ рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐slot-scope="user"
рдХреЗ рдмрдЬрд╛рдпslot-scope="{ user }
ред рдпрд╣ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрднрд╡ рд╣реБрдЖ рд╣реИред рд╕рдорд╕реНрдпрд╛ рддрдм рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдЬрдм рдШрдЯрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ _рдЕрдиреНрдп рдбреЗрдЯрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдлрд┐рд░ рдЙрдирдХреЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВ: рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдореЗрдВ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВ рдпрд╛ рдЗрд╕ рдирдИ рд╕рдВрдкрддреНрддрд┐ рдХреЛuser
рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдмрд╛рдзреНрдп рдХрд░реЗрдВ, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрдо рд╕рдВрдмрдВрдз рд╣реЛред рди рддреЛ рдПрдХ рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ,$slot
рдШрдЯрдХреЛрдВ рдХреЛ рдХрдо рднрд╡рд┐рд╖реНрдп-рд╕рдмреВрдд рдмрдирд╛рдиреЗ рдХреЗ рдкреНрд░рд▓реЛрднрди рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ , рдХреНрдпреЛрдВрдХрд┐ рдЬрдмрдХрд┐$slot
рдЕрднреА рднреА$slot.user
рд╕реЗ рдЫреЛрдЯрд╛ рд╣реИ, рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ$slot
рд░реВрдк рдореЗрдВ рдЕрд▓рд┐рдпрд╛рд╕ рдХрд░рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрджрд░реНрдн рдЦреЛ рджреЗрддреЗ рд╣реИрдВрдиреБрдХрд╕рд╛рди
slot-scope
рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рдХрддрдо рдЦреЛрдЬрдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рд╛рдЬреНрдп рдкреНрд░рджрд╛рддрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдкреИрд░ рдореЗрдВ рдЦреБрдж рдХреЛ рдЧреЛрд▓реА рдорд╛рд░ рд░рд╣рд╛ рд╣реИ рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред