рдЬрдм SSR (рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ) рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдХрд┐ рдХреБрдЫ рдХрд╛рд░реНрдп рдпрд╛ рддрд░реНрдХ рд╕реНрдереИрддрд┐рдХ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рдмрд╛рд░ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдЬреЛ рдмреИрдХрдПрдВрдб рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреБрдП рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдПред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдЙрддреНрдкрд╛рдж рд╕реНрдирд┐рдкреЗрдЯ рдШрдЯрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рд╣реИрдВ:
- рдпрд╣ рдПрд╕рдИрдУ рдФрд░ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдмреИрдХрдПрдВрдб рд╕реЗ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдпрдорд┐рдд Vue рдШрдЯрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, v-bind рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯреНрд╕ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЖрджрд┐ред
- рдЗрд╕реЗ рдЦрд░реАрдж рдмрдЯрди рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП
- "рдЦрд░реАрджреЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдкреНрд░реАрд▓реЛрдбрд░ рдХреЛ рдЯреЛрдХрд░реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдПрдХ рд╕рдорд╛рдзрд╛рди:
- рд╕реНрдереИрддрд┐рдХ рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рд▓рд┐рдЦрд┐рдП, рдХреНрд▓рд┐рдХ рдХреА рдЧрдИ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░, рдЦрд░реАрджреЗрдВ рдмрдЯрди рдкрд░ рд▓реЛрдб рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдирд┐рдХрд╛рд▓реЗрдВ
- Vue рдкрд░ рдЕрд▓рдЧ рд╕реЗ рдПрдХ рдШрдЯрдХ рд▓рд┐рдЦреЗрдВ рдЬреЛ рд╕рдорд╛рди рддрд░реНрдХ рдХреЛ рдХреЗрд╡рд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ
- рдмреИрдХреЗрдВрдб рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдЖрдЗрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рджреВрд╕рд░рд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд╛рдЬреНрдп рдпрд╛ рдЕрдЬрд╛рдХреНрд╕ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕реНрд╡рдЪреНрдЫ рдбреЗрдЯрд╛ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдо рджреЛ рд▓реЙрдЬрд┐рдХ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдПрдХ рд╕реАрдзреЗ DOM рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рджреВрд╕рд░рд╛ рд╢реБрджреНрдз рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рдеред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╕реНрд▓реЙрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд╛рдордЧреНрд░реА рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдЬрд┐рд╕рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, рдпрджрд┐ рдШрдЯрдХ рдХреЛ рдЗрдирд▓рд╛рдЗрди-рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрди рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмреИрдХрдПрдВрдб рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдЗрдП рдПрдХ рдРрд╕рд╛ рдШрдЯрдХ рд▓рд┐рдЦреЗрдВ, рдЬреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдФрд░ рдЧрддрд┐рдХреА рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХреЗ:
рдШрдЯрдХ рд╕реВрдЪреА<template> <div> <slot name="image"> <a :href="url" class="snippet__image"> <img :src="image"> </a> </slot> <slot name="title"> <a :href="url" class="snippet__title">{{ title }}</a> </slot> <div v-if="!inCart" @click="add" :class="{ 'snippet__buy--load': load }" class="snippet__control" > <slot name="button"> <div class="snippet__button"></div> </slot> </div> <div v-if="inCart" class="snippet__control"> <div class="snippet__button"></div> </div> <div v-if="load" class="snippet__load"></div> </div> </template> <script>
рдмреИрдХрдПрдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
<snippet :id="1" class="snippet"> <a slot="image" href="#" class="snippet__image"> <img src="photo.jpg"> </a> <a slot="title" href="#" class="snippet__title"> 1</a> <div slot="button" class="snippet__button"></div> </snippet>
рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдореЗрдВ рдПрдХ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
<catalog-list> <snippet v-for="item in items" :key="item.id" v-bind="item"></snippet> </catalog-list>
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдШрдЯрдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреА рд░рд╛рдп рд╕реБрдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╢рд╛рдпрдж рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИред