Advertisement
Guest User

Untitled

a guest
May 29th, 2025
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 1.44 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="ru">
  3.  <head>
  4.   <title>Alpine.js</title>
  5.   <script defer src="https://unpkg.com/alpinejs@3/dist/cdn.min.js"></script>
  6.  </head>
  7.  <body>
  8.  
  9. <button id="increment">Увеличить count</button> count = <span id="count">0</span><br>
  10. <button id="toggle_printing_count">Count в коллбэке: <span id="toggle_detail"><b>не печатается</b></span>, переключить</button><br>
  11. <button id="force_run">Форсировать выполнение коллбэка</button>
  12.  
  13. <script>
  14.   document.addEventListener('alpine:init', () => {
  15.     let data = Alpine.reactive({ count: 0 });
  16.     let force_run = Alpine.reactive({ count: 0 });
  17.     let print_count = false;
  18.  
  19.     Alpine.effect(() => {
  20.       if (print_count) {
  21.         alert("Ветка print_count!");
  22.         document.querySelector('#count').textContent = data.count;
  23.       }
  24.       if (force_run.count) ;
  25.     });
  26.  
  27.     document.querySelector('#increment').addEventListener('click', () => {
  28.       data.count++;
  29.     });
  30.  
  31.     document.querySelector('#toggle_printing_count').addEventListener('click', () => {
  32.       print_count = !print_count;
  33.       document.querySelector('#toggle_detail').innerHTML = print_count ? "<b>печатается</b>" : "<b>не печатается</b>";
  34.     });
  35.  
  36.     document.querySelector('#force_run').addEventListener('click', () => {
  37.       force_run.count++;
  38.     });
  39.   });
  40. </script>
  41.  
  42.  </body>
  43. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement