Alpine.js指南

指令参考

指令说明
x-data声明组件数据范围
x-init初始化时运行代码
x-show切换可见性(CSS)
x-if条件渲染(DOM)
x-for循环渲染
x-bind绑定属性(:attr简写)
x-on监听事件(@event简写)
x-model双向数据绑定
x-text设置文本内容
x-html设置HTML内容
x-ref存储元素引用
x-cloakAlpine加载完成前隐藏
x-transition添加CSS过渡

计数器示例

<div x-data="{ count: 0 }"> <button @click="count--">-</button> <span x-text="count"></span> <button @click="count++">+</button> </div>

获取数据

<div x-data="{ users: [], async init() { const res = await fetch('/api/users'); this.users = await res.json(); } }"> <template x-for="user in users" :key="user.id"> <div> <span x-text="user.name"></span> <a :href="'/users/' + user.id">View</a> </div> </template> </div>

Alpine.data 可复用组件

Alpine.data('dropdown', () => ({ open: false, toggle() { this.open = !this.open; }, close() { this.open = false; } })); // HTML 使用 <div x-data="dropdown"> <button @click="toggle">Menu</button> <div x-show="open" @click.outside="close"> <!-- 下拉内容 --> </div> </div>