编程

Alpine.js 钩子

973 2023-10-02 17:10:00

Alpine Hooks 模块是 Alipine.js 使用的一系列钩子。该包包含了许多钩子,用来改进通用 Alpine 任务的开发者体验(DX)。 

本文写作时,该模块有以下钩子:

  • $useHover() - 对鼠标悬停在元素上做出反应
  • $useFocus() - 对聚焦和 blur 的元素作出反应
  • $useHash() - 更新 window.location.hash 并对其更改做出反应
  • $useWindowSize() - 返回窗口宽度和高度,并对窗口大小的更改作出反应

以下是一个 $useHover()  的一个例子:

<div x-data="{ hovering: $useHover($refs.target) }" class="py-8">
    <div
        class="w-52 h-64 rounded bg-red-500 transition-colors ease-in-out duration-300 mx-auto flex items-center justify-center"
        x-bind:class="{
            'bg-red-500': !hovering,
            'bg-blue-500': hovering
        }"
        x-ref="target"
    >
        <p class="font-medium" x-text="hovering ? 'Hovering...' : 'Not hovering...'"></p>
    </div>
</div>

使用 npm 将其安装到项目中:

npm install @ryangjchandler/alpine-hooks

更多详情查看 GitHub 源码