рдЬрдм рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд░рд┐рдПрдХреНрдЯ рд╕реЗ Vue рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЬрдм рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░реЗрдЧрд╛



рдпрджрд┐ рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рджреЛ рдорд╣рд╛рди рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреМрди рд╕рд╛ рд╣реИ, рддреЛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ Vue рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдХреА рд░рд╛рдп рдкрдврд╝реЗрдВ , рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдкреВрд░рдХ рд╣реИред Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЙрд▓реНрдпреВрд╢рдВрд╕

рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЕрдиреБрд╡рд╛рджрд┐рдд ред

рддреЛ, рдЖрдк рдПрдХ рд░рд┐рдПрдХреНрдЯрд░ рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ рдФрд░ Vue рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИред рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ!

React рдФрд░ Vue рджреЛрдиреЛрдВ рдХреЛрдХрд╛-рдХреЛрд▓рд╛ рдФрд░ рдкреЗрдкреНрд╕реА рд╣реИрдВред рдЖрдк рд░рд┐рдПрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЬреЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрд╕рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рднреА Vue рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдХрдИ рдЕрдВрддрд░ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ Vue рдкрд░ рдХреЛрдгреАрдп рдврд╛рдВрдЪреЗ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВред

рдпрд╣ рд▓реЗрдЦ рдорддрднреЗрджреЛрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рддреБрд░рдВрдд Vue рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЙрддрд░реЗрдВрдЧреЗ рдФрд░ рд▓рд╛рдн рджреЗрдЦреЗрдВрдЧреЗред

рд░рд┐рдПрдХреНрдЯ рдФрд░ рд╡реНрдпреВ рдореЗрдВ рдХрд┐рддрдирд╛ рдЕрдВрддрд░ рд╣реИ?


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ Vue рдореЗрдВ рдЕрдВрддрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдорд╛рдирддрд╛рдПрдВ рд╣реИрдВ:

  • UI рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпреЗ рджреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИрдВ;
  • рддреЗрдЬ рдФрд░ рд╣рд▓реНрдХрд╛ рджреЛрдиреЛрдВ;
  • рдПрдХ рдШрдЯрдХ рдЙрдиреНрдореБрдЦ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╣реИ;
  • рд╡рд░реНрдЪреБрдЕрд▓ рдбреЛрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
  • рджреЛрдиреЛрдВ рдХреЛ HTML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдпрд╛ рд╡реЗрдмрдкреИрдХ рдкрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реАрдзреЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
  • рджреЛрдиреЛрдВ рдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдФрд░ рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВред

рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ Vue рдЖрдорддреМрд░ рдкрд░ HTML рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред Vue рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕реНрдерд┐рддрд┐ рдФрд░ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рд░рд┐рдбреНрд░рд╛ рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬрд┐рд╕реЗ "рд░рд┐рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрд╡рдпрд╡


Vue рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ, рдПрдХ API рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ .componentрдЬрд╛рддрд╛ рд╣реИ рдЬреЛ id рддрд░реНрдХреЛрдВ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдЪрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЗрддрд╛ рд╣реИред рд░рд┐рдПрдХреНрдЯрд░ рдбреЗрд╡рд▓рдкрд░ рд╕рдВрднрд╡рддрдГ рдЗрд╕ рдХреЛрдб рдореЗрдВ Vue рдШрдЯрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдЪрд┐рдд рдФрд░ рдЕрдкрд░рд┐рдЪрд┐рдд рдкрд╣рд▓реБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдЧрд╛:

Vue.component('my-component', {
  //<strong> </strong> Props
  props: [ 'myprop' ],
  // <strong> </strong> Local state
  data() {
    return {
      firstName: 'John',
      lastName: 'Smith'
    }
  },
  // <strong>  </strong>Computed property
  computed: {
    fullName() {
      return this.firstName + ' ' + this.lastName;
    }
  },
  // <strong> </strong>Template
  template: `
    <div>
      <p>Vue components typically have string templates.
      <p>Here's some local state: {{ firstName }}
      <p>Here's a computed value: {{ fullName }}
      <p>Here's a prop passed down from the parent: {{ myprop }}
    </div>
  `,

  // <strong>    </strong>Lifecycle hook
  created() {
    setTimeout(() => {
      this.message = 'Goodbye World' 
    }, 2000);
  }
});

рдЦрд╛рдХрд╛


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдШрдЯрдХ рдореЗрдВ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ template, рдЬреЛ HTML рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред Vue рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рд╕рдВрдХрд▓рдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпреЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╡рд░реНрдЪреБрдЕрд▓ DOM рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЖрдк рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ templateрдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдирд╛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВред рддреБрдо рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреБрдирд┐рдпрд╛ рд╕реЗ JSX рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡реАрдпреВ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░рдирд╛ рдЕрдЬреАрдм рд╣реЛрдЧрд╛ - рдХреИрд╕реЗ рдЗрдЯрд▓реА рдореЗрдВ рдЖрдирд╛ рдФрд░ рдкрд┐рдЬреНрдЬрд╛ рдХреЛ рдордирд╛ рдХрд░рдирд╛ ...

рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЗ рд╣реБрдХ


Vue рдШрдЯрдХреЛрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЪрдХреНрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдорд╛рди рдЬреАрд╡рди рдЪрдХреНрд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, createdрдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╣реБрдХ рддрдм рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм stateрдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ ( ) рддреИрдпрд╛рд░ рд╣реЛрддреА рд╣реИ , рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдШрдЯрдХ рдкреГрд╖реНрда рдкрд░ рд╕рдВрд▓рдЧреНрди рд╣реЛ рдЬрд╛рдПред рджреБрдирд┐рдпрд╛ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ - getDerivedStateFromPropsред

рд▓реЗрдХрд┐рди рдПрдХ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рд╣реИ: рд╡реАрдпреВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдХреЛрдИ рдПрдирд╛рд▓реЙрдЧ рдирд╣реАрдВ рд╣реИ shouldComponentUpdateред рд╡реАрдпреВ рд░рд┐рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

рдХрдВрдкреЛрдиреЗрдВрдЯ рд░рд┐рдбрд░реНрд╡рд┐рдВрдЧ


рдПрдХ рдШрдЯрдХ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕рдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, messageрдореВрд▓ рдбреЗрдЯрд╛ ( props) рд╕реЗ рд▓реА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реАрдХреЗ рдкреНрд░рд╛рдкреНрдд рд╣реБрдП - getрдФрд░ set:


рдЬрдм рдХреЛрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрдврд╝рддрд╛ рд╣реИ рдпрд╛ рдЙрд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рд╡реЗрдпреВ рдирд┐рд░реНрднрд░рддрд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реИред

рдкрд░рд╕реНрдкрд░ рдЕрд╡рд╕реНрдерд╛


Vue рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ this.setState, рдЬреИрд╕рд╛ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рд╕реАрдзреЗ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

// React
this.setState({ message: 'Hello World' });
// Vue
this.message = 'Hello World'; 

рдЬрдм рдЗрд╕ рддрд░рд╣ рд╕реЗ рд░рд╛рдЬреНрдп рдХрд╛ рдореВрд▓реНрдп рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ setрдЗрд╕ рдореВрд▓реНрдп рдХреА рд╡рд┐рдзрд┐ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИ (рдКрдкрд░ рджреЗрдЦреЗрдВ)ред SetрдПрдХ рдирдпрд╛ рдорд╛рди рд▓рд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдХрд╛рд░реНрдп рднреА рд╣реИ: рд╡рд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдРрд╕рд╛ рдореВрд▓реНрдп рд╣реИ рдЬреЛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХрд╛ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛, рдЬреЛ рд░рд╛рдЬреНрдп рдореЗрдВ рдЗрд╕ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдпрджрд┐ рдЪрд░ рдХреЛ рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдореЗрдВ messageрд╕рдВрдкрддреНрддрд┐ ( prop) рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЧреЗ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рддреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЗрд╕реЗ рдпрд╛рдж рд░рдЦрддрд╛ рд╣реИ, рдФрд░ рдмрд╛рд▓ рдШрдЯрдХ рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ Vue рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ React рдХреЗ рд╕рдорд╛рди рдЬреАрд╡рди-рдЪрдХреНрд░ рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ shouldComponentUpdateред

рдореБрдЦреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ


рдореБрдЦреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, Vue рдХреЛ Angular рдЕрдзрд┐рдХ рдкрд╕рдВрдж рд╣реИред рдЬреИрд╕реЗ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ, Vue рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкреГрд╖реНрда рдкрд░ рдХрд╣реАрдВ рдЖрд░реЛрд╣рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

<body>
  <div id="root"></div>
</body>

// React
ReactDOM.render('...', document.getElementById('root'));

// Vue
new Vue({
  el: '#root'
});

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдк рдЗрд╕ рд░реВрдЯ рддрддреНрд╡ рдореЗрдВ рдирд┐рдпрдорд┐рдд рд▓реЗрдЖрдЙрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдШрдЯрдХ рдХреЛ рдмрдврд╝рддреЗ рд╕рдордп рд░рд┐рдПрдХреНрдЯ рддрддреНрд╡ рдХреЗ рдЕрдВрджрд░ рд╕рдм рдХреБрдЫ рдорд┐рдЯрд╛ рджреЗрддрд╛ рд╣реИ #root, рддреЛ Vue рдмрдЪрд╛рдПрдЧрд╛:

<div id="root">
  <div>You can add more markup to index.html</div>
  <my-component v-bind:myprop="myval"></my-component>
</div>

рд░реВрдЯ HTML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ x-рдЯреЗрдореНрдкрд▓реЗрдЯ рдпрд╛ рдЗрдирд▓рд╛рдЗрди-рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬреИрд╕реЗ рд░реВрдЯ HTML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рднреА рд╣реИред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреВрд░реЗ рдШрдЯрдХ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИред

рдирд┐рд░реНрджреЗрд╢реЛрдВ


рдлрд┐рд░ рд╕реЗ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдгреАрдп рдореЗрдВ, Vue рдЖрдкрдХреЛ "рдирд┐рд░реНрджреЗрд╢реЛрдВ" рдХреЗ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШрдЯрдХ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖ HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ v-, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, v-ifрд╢рд░реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдкрд╛рджрди рдпрд╛ v-bindрдПрдХ рдирд┐рдпрдорд┐рдд HTML рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

new Vue({
  el: '#app',
  data: {
    mybool: true,
    myval: 'Hello World'
  }
});
<div id="app">
  <div v-if="mybool">This renders if mybool is truthy.</div>
  <my-component v-bind:myprop="myval"></my-component>
</div>

рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореВрд▓реНрдп рдПрдХ рдЬреЗрдПрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рддрдм рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕рд╣рд┐рдд рдбреЗрдЯрд╛ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрдЧрдарди


Vue рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдирд┐рд░реНрдорд╛рдг-рдРрдк рдХреЗ рдмрд░рд╛рдмрд░ рдХреЛрдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ Vue рдбреЗрд╡рд▓рдкрд░ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ рдмрд┐рд▓реНрдб рд╣реИ: create-vue-appред

Vue рдкрд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд┐рдлрд╛рд░рд┐рд╢ vue-cli рд╣реИред рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдПрдХ HTML рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреИрдХ рдХрд┐рдП рдЧрдП рд╡реЗрдмрдкреИрдХ + рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

$ vue init template-name project-name

рдПрдХрд▓ HTML рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ


Vue.js рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛, рдЗрд╡рд╛рди рдпреВ (рдЖрдк рдпреВ рд╢реА рдкрдЦрд┐рдирд┐рди) рдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ "рдПрдХ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рдврд╛рдВрдЪрд╛" рдХрд╣рд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдмреЗрд╢рдХ, рд░рд┐рдПрдХреНрдЯ рд╡рд╣ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ Vue рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдЖрдо рддреМрд░ рдкрд░ рдХрдо ES6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╢рд╛рдпрдж рд╣реА рдХрднреА JSX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ Babel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╕рд╛рде рд╣реА, рд╕рдВрдкреВрд░реНрдг Vue рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддреА рд╣реИ, ReactDOM рдЬреИрд╕реЗ рд░рд┐рдПрдХреНрдЯ рд╕рдордХрдХреНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рд╣реИрдВред

рдпрд╣рд╛рдВ Vue рдХреЛ рдПрдХ рдПрдХрд▓ HTML рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

<script src="https://unpkg.com/vue/dist/vue.js"></script>

рдЬрд░реВрд░реА! рдпрджрд┐ рдЖрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдпреЗ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИрдВ - vue.runtime.jsред рдпрд╣ рдкреВрд░реНрдг рд╕реЗ рд▓рдЧрднрдЧ 20 KB рдХрдо рд╣реИред

рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШрдЯрдХ


рдпрджрд┐ рдЖрдк рд╕реМрднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ рдХрд┐ рд╡реЗрдмрдкреИрдХ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк Vue рдХреЗ рд╕рд┐рдВрдЧрд▓ рдлрд╛рдЗрд▓ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ (SFC, Vue рдШрдЯрдХреЛрдВ рдХреЛ рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдореЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рд╣реИрдВ .vue, рд╡реЗ рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ, рдЬреЗрдПрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреЗ рд╣реИрдВ:

<template>
  <div class="my-class">{{ message }}</div>
</template>
<script>
  export default {
    data() {
      message: 'Hello World'
    }
  }
</script>
<style>
  .my-class { font-weight: bold; }
</style>

рдпрд╣, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрджреЗрд╣ рдХреЗ, рд╡реАрдпреВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд╕рдмрд╕реЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рд╕рд╣реА HTML рдЯреЗрдореНрдкрд▓реЗрдЯ рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЗрдПрд╕ рд▓реЙрдЬрд┐рдХ рд╡рд╣реАрдВ, рдЗрд╕рдХреЗ рдареАрдХ рдмрдЧрд▓ рдореЗрдВ рд╣реИ, рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рд╕реНрддреБрддрд┐ рдФрд░ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рдХреНрд░ рдирд╣реАрдВ рд╣реИред

рдПрдХ рд╡реЗрдмрдкреИрдХ-рд▓реЛрдбрд░ рд╣реИ рдЬрд┐рд╕реЗ рд╡реАрдпреВ-рд▓реЛрдбрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрд╕рдПрдлрд╕реА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдПрдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдк-рдбрд╛рдЙрди рдЕрд╕реЗрдВрдмрд▓реА vue.runtime.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реИред

Redux рдФрд░ рдмрд╛рдХреА


Vue рдореЗрдВ рдПрдХ рдлреНрд▓рдХреНрд╕-рдЖрдзрд╛рд░рд┐рдд рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕реЗ Vuex рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдмрд╛рд░ рдпрд╣ рд░реЗрдбрдХреНрд╕ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрдВрддрд░ рд╣реИрдВред

рд░рд┐рдПрдХреНрдЯ рд╕реЗ Vue рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдкрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ?


рдореБрджреНрджреЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд▓реЗрдЦ рдХреЛ рдкреВрд░рдХ рдХрд┐рдпрд╛ рдФрд░ рдмрддрд╛рдпрд╛ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдХрдм рдмреЗрд╣рддрд░ рд╣реИ, рдФрд░ рдХрдм рдХрд░рдирд╛ рд╣реИред

Vue рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рдирдП рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред Vue рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕реАрдзреЗ HTML рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдирд╡реАрдирддрдо ES ++ рдлреАрдЪрд░реНрд╕ рдХреЛ рдЬрд╛рдирдирд╛ рдФрд░ рдХреЛрдб рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╡реЗрдмрдкреИрдХ рдФрд░ рдмреИрдмреЗрд▓ рдЬреИрд╕реЗ рдЯреВрд▓реНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред Vue рдХреЗ рд▓рд┐рдП рдХреЛрдб jQuery- рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рд╕реАрдзреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВред

Vue рдореЗрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЖрдЙрдЯ-рдСрдл-рдмреЙрдХреНрд╕ рд╕реНрдерд┐рддрд┐ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рдкреНрд░рдгрд╛рд▓реА рднреА рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡рд┐рдзрд┐ setState( рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ ) рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдпрд╛ рд░рд╛рдЬреНрдп рд╡рд┐рддрд░рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ Mobx )ред

рдЕрдВрдд рдореЗрдВ, Vue рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓рд┐рдЦреЗ рдЧрдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрд╕рд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЕрдХреНрд╕рд░ рдХреЗрд╡рд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реА рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ vue.runtime.js рдХреЗ рдЗрд╕рдХреЗ рдЫреАрди-рдбрд╛рдЙрди рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЬрдмрдХрд┐ рд░рд┐рдПрд▓ рдкрд░ рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд╛рд╕ рдмрд╛рдмреЗрд▓ рдФрд░ рднрд╛рд░реА рдмрдВрдбрд▓реЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрдИ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рддрдХ рд╡рдЬрди рдХреЗ рдмрд┐рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИред

рджреВрд╕рд░реА рдУрд░, Vue рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдПрдХ рдмрдбрд╝рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рдЬрдЯрд┐рд▓ рддрд░реНрдХ рд╣реИред рдпрджрд┐ HTML рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд░рд┐рдПрдХреНрдЯ, рдЬреЛ рдХреЗрд╡рд▓ рдЬреЗрдПрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдХреЛрдб рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЦрд░реНрдЪ рдХреЗ рд░рд┐рдПрдХреНрдЯ-рдиреЗрдЯрд┐рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрддреЗ рд╕рдордп рдЕрдкрдиреЗ рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реНрдпреВ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

  • , , . ;
  • , : Vue, - React.

Mail.ru Cloud Solutions.


All Articles