рдпрд╣рд╛рдВ Dev.to рд╕реЗ " рдЖрдкрдХреЛ рдмреЗрд╣рддрд░ VueJS рдбреЗрд╡рд▓рдкрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП 10 рдЯрд┐рдкреНрд╕ рдФрд░ рдЯреНрд░рд┐рдХреНрд╕ " рд▓реЗрдЦ рдХрд╛ рдореБрдлреНрдд рдЕрдиреБрд╡рд╛рдж рд╣реИред рд▓реЗрдЦрдХ рд╣рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп VueJS рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдЧрд╛ред
рдкрд░рд┐рдЪрдп
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ VueJS рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдордЬрд╛ рдЖрддрд╛ рд╣реИ рдФрд░ рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реВрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП резреж рдмреЗрд╣рддрд░реАрди рдЯрд┐рдкреНрд╕ рдФрд░ рдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рд╢рд╛рдпрдж рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдереЗ рдФрд░ рдЖрдкрдХреЛ VueJS рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдбреЗрд╡рд▓рдкрд░ рдмрдирдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред
рдЪрд▓реЛ рд╕реНрд▓реЙрдЯреНрд╕ рдХреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рд╕реБрдВрджрд░ рдмрдирд╛рддреЗ рд╣реИрдВ
Vue 2.6 рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде, рд╕реНрд▓реЙрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд╖рд┐рдкреНрддрд╛рдХреНрд╖рд░ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдП, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдИрд╡реЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, v-on:click
рд▓рд┐рдП @click
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо v-on:click
) рдпрд╛ рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ ( :src
) рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреЛрд▓рди ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдШрдЯрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣реИ, рддреЛ рдЖрдк рдирд┐рдореНрди рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<template> ... <my-table> <template #row="{ item }"> /* some content here. You can freely use 'item' here */ </template> </my-table> ... </template>
$ рдкрд░ ('рд╣реБрдХ:')
рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рдХрд╕реНрдЯрдо рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдпрд╛ рдХрд┐рд╕реА рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреНрд▓рдЧрдЗрди рдХреЛ created
рдпрд╛ mounted
рд╣реБрдХ рдореЗрдВ beforeDestroy
рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ beforeDestroy
рд╣реБрдХ рдореЗрдВ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред $on('hook:')
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ $on('hook:')
рдЖрдк рдХрд┐рд╕реА рдШрдЯрдирд╛ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╣реБрдХ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдпрд╛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред
mounted() { const aThirdPartyPlugin = aThirdPartyPlugin() this.$on('hook:beforeDestroy', () => { aThirdPartyPlugin.destroy() }) }
рдорд╛рдиреНрдпрддрд╛ рдкреНрд░реЙрдкреНрд╕
рд╢рд╛рдпрдж рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдкрдиреЗ рдореВрд▓ рдХреЛ рдЖрджрд┐рдо рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдорд╛рдиреНрдп рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬреИрд╕реЗ String
, Number
рдпрд╛ Object
ред рд▓реЗрдХрд┐рди рдЖрдк рдПрдХ рдХрд╕реНрдЯрдо рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рддрд╛рд░ рдХреА рдПрдХ рд╕рд░рдгреА рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
alertType: { validator: value => ['signup', 'login', 'logout'].includes(value) }
рдЧрддрд┐рд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢ рд╕рдВрдмрдВрдзреА рддрд░реНрдХ
VueJS 2.6 рдХреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдШрдЯрдХ рдирд┐рд░реНрджреЗрд╢рд╛рддреНрдордХ рддрд░реНрдХреЛрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмрдЯрди рдХрдВрдкреЛрдиреЗрдВрдЯ рд╣реИ рдФрд░ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд Click
рдЗрд╡реЗрдВрдЯ рдФрд░ рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ DoubleClick
рдЗрд╡реЗрдВрдЯ рдХреЛ рд╕реБрдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдПрдХ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдБ рдРрд╕рд╛ рдирд┐рд░реНрджреЗрд╢ рдХрд╛рдо рдЖ рд╕рдХрддрд╛ рд╣реИ:
<template> ... <aButton @[someEvent]="handleSomeEvent()"/> ... </template> <script> ... data(){ return{ ... someEvent: someCondition ? "click" : "dblclick" } }, methods:{ handleSomeEvent(){ // handle some event } } ... </script>
рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ -> рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рдПрдЪрдЯреАрдПрдордПрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ, рдкреНрд░реЙрдкреНрд╕ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
рд╕рдорд╛рди рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХ
рдХрднреА-рдХрднреА рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рд░реНрдЧ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХреБрдЫ рд╕реЗрдЯ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдРрд╕реЗ рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ Vue рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рдШрдЯрдХ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк Router-View-Component
рдореЗрдВ :key
рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<template> <router-view :key="$route.fullPath"></router-view> </template>
рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рдмрдЪреНрдЪреЗ рдХреЗ рдШрдЯрдХ рддрдХ рд╕рднреА рд╕рд╣рд╛рд░рд╛ рдкрд╛рд╕ рдХрд░реЗрдВ
рдпрд╣ рдореВрд▓ рдШрдЯрдХ рд╕реЗ рдмрд╛рд▓ рдШрдЯрдХ рддрдХ рд╕рднреА рдкреНрд░реЙрдкреНрд╕ рдиреАрдЪреЗ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрд╡рд░рдг рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдмрд╕ рдЙрди рд╕рднреА рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
<template> <childComponent v-bind="$props"/> </template>
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп:
<template> <childComponent :prop1="prop1" :prop2="prop2" :prop3="prop3" :prop4="prop4" ... /> </template>
рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рдмрдЪреНрдЪреЗ рдХреЗ рдШрдЯрдХ рддрдХ рд╕рднреА рдШрдЯрдирд╛ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВ
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЪрд╛рдЗрд▓реНрдб рдХрдВрдкреЛрдиреЗрдВрдЯ рд╣реИ рдЬреЛ рдкреИрд░реЗрдВрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдкреЗрд░реЗрдВрдЯ рд╕реЗ рд▓реЗрдХрд░ рдмрдЪреНрдЪреЗ рддрдХ рд╕рднреА рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<template> <div> ... <childComponent v-on="$listeners"/> ... </div> </template>
рдпрджрд┐ рдмрдЪреНрдЪрд╛ рдШрдЯрдХ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдЬрдбрд╝ рдореЗрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдРрд╕реА рдЪрд╛рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдФрд░ рд╕рднреА рдШрдЯрдирд╛рдПрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреАред
$ рд╕реГрдЬрди
рдкреНрд░рддреНрдпреЗрдХ Vue рдЙрджрд╛рд╣рд░рдг рдореЗрдВ $createElement
рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣реБрдВрдЪ рд╣реИ, рдЬреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдиреЛрдб рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, v-html
рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдореЗрдВ рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХреЛрдВ рдореЗрдВ, рдпрд╣ рд╡рд┐рдзрд┐ render
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред
JSX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
Vue CLI 3
рд╢реБрд░реВ рд╣реЛрдХрд░ JSX рд╕рдкреЛрд░реНрдЯ рдбрд┐рдлреЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╛рдордиреЗ рдЖрдпрд╛ рд╣реИред рдЕрдм рдЖрдк JSX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рдж рдЕрдзрд┐рдХ рд╕рд╣рдЬ рд╣реИрдВ), рддреЛ рдпрд╣ рдФрд░ рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Vue CLI 3
рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ babel-plugin-transform-vue-jsx
рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП babel-plugin-transform-vue-jsx
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд╕реНрдЯрдо v- рдореЙрдбрд▓
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, v-model
рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо @input
рдФрд░ :value
рдШрдЯрдирд╛рдУрдВ рдкрд░ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдЪреАрдиреА рдХрд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкрдиреЗ рд╡реАрдпреВ рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ model
рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рдЗрд╡реЗрдВрдЯ рдФрд░ рдкреНрд░реЙрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
export default: { model: { event: 'change', prop: 'checked' } }
рдирд┐рд╖реНрдХрд░реНрд╖
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда VueJS рдбреЗрд╡рд▓рдкрд░ рдмрдирдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред