Alpine.js 第三阶段学习笔记(对比 jQuery)

星野梦璃
2026-04-27 / 0 评论 / 3 阅读

Alpine.js 第三阶段学习笔记(对比 jQuery)

基于:

  • Alpine.js
  • jQuery

1️⃣ x-transition(动画)

👉 作用

x-show / x-if 增加过渡动画


✅ Alpine 完整示例

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <script src="https://unpkg.com/alpinejs" defer></script>
</head>
<body>

<div x-data="{ open: false }">
  <button @click="open = !open">切换</button>

  <div x-show="open" x-transition style="padding:20px;background:#4ade80;">
    动画内容
  </div>
</div>

</body>
</html>

🔁 jQuery 对比

<script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>

<button id="btn">切换</button>
<div id="box" style="display:none;">动画内容</div>

<script>
$("#btn").click(function() {
  $("#box").fadeToggle();
});
</script>

2️⃣ $refs(操作 DOM)

👉 作用

直接获取 DOM 元素(替代 querySelector / $)


✅ Alpine 示例

<div x-data>
  <input x-ref="input">
  <button @click="$refs.input.focus()">聚焦</button>
</div>

🔁 jQuery 对比

<input id="input">
<button id="btn">聚焦</button>

<script>
$("#btn").click(function() {
  $("#input").focus();
});
</script>

3️⃣ $watch(监听数据变化)

👉 作用

监听变量变化,自动执行逻辑


✅ Alpine 示例

<div x-data="{ count: 0 }"
     x-init="$watch('count', val => alert(val))">

  <button @click="count++">+1</button>
</div>

🔁 jQuery 对比(本质不支持)

let count = 0;

$("#btn").click(function() {
  count++;
  alert(count);
});

👉 jQuery 无法真正“监听变量”


4️⃣ x-effect(自动副作用)

👉 作用

数据变化时自动执行代码


✅ Alpine 示例

<div x-data="{ count: 0 }">

  <div x-effect="document.title = 'Count: ' + count"></div>

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

</div>

🔁 原生 / jQuery 对比

let count = 0;

function update() {
  document.title = "Count: " + count;
}

$("#btn").click(function() {
  count++;
  update();
});

👉 必须手动调用


5️⃣ x-init(初始化)

👉 作用

页面加载时执行逻辑


✅ Alpine 示例

<div x-data="{ msg: '' }"
     x-init="msg = '页面加载完成'">

  <span x-text="msg"></span>
</div>

🔁 jQuery 对比

$(document).ready(function() {
  $("#text").text("页面加载完成");
});

💀 第三阶段核心总结

x-transition → 动画
$refs        → 操作DOM
$watch       → 监听数据
x-effect     → 自动执行逻辑
x-init       → 初始化

🔥 本质区别

方式思维
jQuery操作 DOM
Alpine操作 数据

🧠 核心理解

传统写法:
点击 → 操作 DOM

Alpine:
修改数据 → DOM 自动更新

🚀 学习建议

建议你做一个练习:

  • 点击按钮打开弹窗(x-show)
  • 带动画(x-transition)
  • 输入框自动聚焦($refs)
  • 输入变化自动打印($watch)

👉 做完这个,第三阶段就通了


0

评论 (0)

取消