Alpine.js 的基础使用说明

本文属于知识库测试文档,用于验证专题聚合、TOC、样式组件、代码块渲染效果。

简介

DayuPress 前端交互优先采用 Alpine.js,不引入 Vue、React 等重型框架。
所有交互逻辑轻量化,无多余动画,只完成基础功能:菜单展开、搜索、弹窗、主题色切换。

引入方式

wp_enqueue_script(
    'dayu-alpine',
    get_template_directory_uri() . '/assets/js/alpine.min.js',
    [],
    '3.14.0',
    true
);

✅ 优势

  • 体积很小,压缩后仅十几KB
  • 原生HTML写法,和主题钩子友好兼容
  • 不会大幅拖累 Lighthouse 性能得分

⚠️ 警示:

不要在主题全局到处挂载 Alpine 逻辑,只绑定需要交互的区块;静态页面尽量纯CSS实现,减少JS执行。

基础示例:下拉子菜单

<div x-data="{open:false}">
    <button @click="open=!open">菜单</button>
    <div x-show="open">子菜单内容</div>
</div>

安全规范清单

  • 输出内容统一使用 esc_html() / esc_attr() / esc_url()
  • 表单提交必须携带 wp_nonce 校验
  • 用户输入使用 sanitize_text_field 系列函数过滤
  • 图片输出使用 the_post_thumbnail() + srcset

常见疑问

能不能换成原生JS?

可以。简单交互优先原生JS;复杂一点的状态切换(搜索弹窗、多选面板)再使用 Alpine.js。

会影响无障碍评分吗?

只要配套 ARIA 属性、键盘回车/ESC关闭逻辑,不会负面影响无障碍分数,目标保持 Lighthouse ≥90。

还没有讨论,来说两句

参与讨论

文明交流,分享有用的通关与配置经验。