рдЕрд▓реНрдкрд╛рдЗрди.рдЬреЗрдПрд╕ - рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╣рд▓реНрдХреЗ рдврд╛рдВрдЪреЗ

рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ Vue.js рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓реЗрдХреЛрдирд┐рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рдкрд╛рд╡рд░ рд╕реЗ рдЗрддрдирд╛ рдкреНрдпрд╛рд░ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХреЗрд╡рд▓ рд╕рд┐рдВрдЧрд▓-рдкреЗрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдПрдХ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓рд┐рдЦрдирд╛ рдЕрдЪрд╛рдирдХ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЧрдпрд╛ред рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ jQuery рдпрд╛ рд╢реБрджреНрдз JS рдкрд░ рди рд▓реМрдЯреЗрдВ !?


рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ Vue.js рдореЗрдВ (рдФрд░ рдХрдИ рдЕрдиреНрдп рдЪреМрдЦрдЯреЗ рдореЗрдВ) рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмреЛрдЭрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмреЗрдорд╛рдиреА рд╣реИред рдФрд░ рдпрд╣рд╛рдБ рдЕрд▓реНрдкрд╛рдЗрди.рдЬреЗрдПрд╕ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ ред


рдЖрдЗрдП рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:


  1. рдЙрд╕рдХрд╛ рд╡рдЬрд╝рди рдмрд╣реБрдд рдХрдо рд╣реИ! 7.2kB рд╕рдВрдХреБрдЪрд┐рдд рд░реВрдк рдореЗрдВред
  2. рдкрд░рд┐рдЪрд┐рдд рдФрд░ рд╕рд░рд▓ рдирд┐рд░реНрджреЗрд╢ рдЖрдзрд╛рд░рд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ред
  3. рд╡рд░реНрдЪреБрдЕрд▓ рдбреЛрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
  4. рд╕реАрдбреАрдПрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╕рдВрднрд╡ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЗрд░рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рдФрд░ рдПрдирдкреАрдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред

рдЗрд╕ рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:


рдореВрд▓ рдЙрджрд╛рд╣рд░рдг


    <div x-data="{ msg: 'Hello, Habr!' }">
        <input type="text" x-model="msg" />
        <p x-text="msg"></p>
    </div>

Playcode.io рдкрд░ рд╕рднреА рд▓реЗрдЦ рдХреЛрдб рджреЗрдЦреЗрдВ


, , x-data. , JSON- . . Dom-, .



x-data="{}"

, , , .


рдЕрдм рд╣рдо рд╕рдВрджреЗрд╢ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдХреГрдкрдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХреНрд╕-рдореЙрдбрд▓ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдПрдХ рдкрд╛рда <рдЗрдирдкреБрдЯ /> рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ V..s. рд╕реЗ рдЬреБрдбрд╝рд╡рд╛рдВ рд╡реА-рдореЙрдбрд▓ рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рджреА рд╣реИред рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╕рд╛рджреГрд╢реНрдп, рдХреНрдпреЛрдВрдХрд┐ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИ! рд╕рдВрджреЗрд╢ рдХреЛ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд╕рд╛рде рд▓рдЯрдХрд╛рдХрд░, рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ 'рд╣реИрд▓реЛ, рд╣реИрдмрд░!' рдЗрдирдкреБрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВред рдЕрдм рд╣рдо рдЗрд╕рдХрд╛ рдорд╛рди рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред


рдпрд╣рд╛рдБ рд╣рдо рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рдирд┐рд░рд╛рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИрдВ, рдЬреЛ Vue.js рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдЖрджреА рд╣реИрдВ рдФрд░ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдЪрд░ рдорд╛рдиреЛрдВ рдХрд╛ рд╕рд░рд▓ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,

<p>{{ msg }}</p>

Alpine.js рдореЗрдВ, рдпрд╣ рдХреЛрдб рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдкрд╛рда

рд╡рд┐рд╢реЗрд╖ x-text рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХреНрд╕-рдПрдЪрдЯреАрдПрдордПрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреВрд░реЗ рдорд╛рд░реНрдХрдЕрдк рдмреНрд▓реЙрдХ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред



рдШрдЯрдирд╛ рд╕рджрд╕реНрдпрддрд╛


рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:

    <div x-data="{ counter: 1 }">
      <h1 x-text="counter"></h1>
      <button x-on:click="counter++">+1</button>
    </div>

x-on. Alpine.js , js-, . , , x-on тАФ @. :

<button @click="counter++">+1</button>


x-if:



    <div x-data="{ show: false }">
      <button
        x-on:click="show = ! show"
        x-text="show ? '' : ''"
      ></button>
      <template x-if="show">
        <p> !</p>
      </template>
    </div>

x-if, Vue.js. Boolean . . .


<div x-data="{ items: ['habr', 'hubr', 'hobr'] }">
   <ol>
     <template x-for="item in items" x-bind:key="item">
       <li>
         <p x-text="item"></p>
       </li>
     </template>
  </ol>
</div>

x-for , . , , item. , , item , Alpine . ( ) key. key x-bind. x-for x-if , .

. github.

Alpine.js.

рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдкрд╕рдВрдж рдЖрдпрд╛ рд╣реЛрдЧрд╛ред

рд╕рдлрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ рдЬрд▓реНрдж рд╣реА рдорд┐рд▓рддреЗ рд╣реИрдВ!



рдЦреИрд░, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЕрдЪреНрдЫрд╛рдИ рдХреА рдПрдХ рд╕реВрдЪреА рдЬрд┐рд╕реЗ рдЕрд▓реНрдкрд╛рдЗрди рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддреЗ рд╣реИрдВ:


  • рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢
  • рдЕрд╡рдпрд╡
  • рд╢реИрд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдорд░реНрдерди
  • рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ...

All Articles