菜单

核心 UI 组件

相关源文件

Semantic UI 的核心 UI 组件代表了为框架提供交互功能的 JavaScript 模块。这些组件实现为 jQuery 插件,将静态 HTML/CSS 元素转换为动态、交互式的 UI 元素。有关 CSS 样式的更多信息,请参阅 CSS 样式系统

组件架构

Semantic UI 中的核心 UI 组件遵循基于 jQuery 插件系统的统一架构模式。每个组件都实现为可以初始化在 DOM 元素上的 jQuery 插件。

来源: src/definitions/modules/dropdown.js11-127 src/definitions/modules/popup.js11-104 src/definitions/behaviors/form.js11-92

通用初始化模式

所有核心组件都遵循相似的初始化模式

来源: src/definitions/modules/dropdown.js92-117 src/definitions/modules/popup.js84-95 src/definitions/behaviors/form.js73-91

关键组件

下拉菜单组件是该框架中最通用的 UI 组件之一,提供了具有多种模式的选择功能,包括标准选择、搜索选择和多选。

主要功能

  • 带有可搜索选项的标准选择
  • 带有标签界面的多选
  • 通过 API 加载远程数据
  • 键盘导航
  • 可自定义的动画和行为
  • 表单集成和验证

来源: src/definitions/modules/dropdown.js92-127 src/definitions/modules/dropdown.js452-508 src/definitions/modules/dropdown.less25-67

弹出框组件提供情境化覆盖层,可以通过激活元素的各种事件触发。

主要功能

  • 相对于目标元素的上下文定位
  • 多种触发事件(点击、悬停、焦点)
  • 可自定义的动画和过渡效果
  • 从属性或 DOM 加载内容
  • 窗口大小改变时自动重新定位

来源: src/definitions/modules/popup.js82-103 src/definitions/modules/popup.js239-279 src/definitions/modules/popup.js308-343

表单验证

表单验证提供了一个强大的系统,可以使用内置和自定义的验证规则来验证用户输入。

主要功能

  • 丰富的内置验证规则
  • 自定义验证函数
  • 行内验证和提交时验证
  • 可自定义的错误提示
  • 与其他表单元素(下拉菜单、复选框)的集成

来源: src/definitions/behaviors/form.js73-91 src/definitions/behaviors/form.js237-248 src/definitions/behaviors/form.js514-531

搜索组件

搜索组件提供了一个用于搜索本地或远程内容的界面。

主要功能

  • 本地和远程数据搜索
  • 可自定义的结果显示
  • 类别结果支持
  • 键盘导航
  • 与 API 模块集成

来源: src/definitions/modules/search.js69-79 src/definitions/modules/search.js146-158 src/definitions/modules/search.js251-332

组件交互

Semantic UI 的核心 UI 组件被设计成协同工作,一些组件的功能依赖于其他组件。

来源: RELEASE-NOTES.md62-69 src/definitions/modules/dropdown.js774-781

组件生命周期

Semantic UI 的核心 UI 组件遵循一致的生命周期模式,这使得它们可预测且易于使用。

关键生命周期方法

  • initialize():初始化组件实例
  • instantiate():存储组件实例
  • bind.events():附加事件处理程序
  • destroy():清理组件实例
  • 特定于设置的方法:配置行为

来源: src/definitions/modules/dropdown.js121-127 src/definitions/modules/dropdown.js129-145 src/definitions/modules/popup.js97-103 src/definitions/modules/popup.js160-178

通用状态管理模式

核心 UI 组件使用一致的模式来管理状态

通用状态方法

  • is.visible(), is.hidden(): 检查可见性状态
  • is.animating(): 检查动画是否正在进行
  • is.valid(): 检查有效性(针对表单元素)
  • has.xxx(): 检查组件是否具有某些特性或状态

来源: src/definitions/modules/dropdown.js376-403 src/definitions/modules/popup.js371-402 src/definitions/behaviors/form.js251-297

组件通信

组件通过几种机制进行通信

  1. 直接方法调用:组件可以调用其他组件的方法
  2. 事件触发:组件可以触发其他组件监听的事件
  3. 回调:组件提供重要状态更改的回调钩子
  4. 设置:组件可以配置为与其他组件协同工作

来源: src/definitions/modules/dropdown.js739-782 src/definitions/behaviors/api.js172-271

核心技术实现细节

jQuery插件模式

所有核心UI组件都使用标准的模式实现为jQuery插件

来源: src/definitions/modules/dropdown.js22-39 src/definitions/modules/popup.js22-40 src/definitions/behaviors/form.js22-35

方法调用

组件支持通过字符串参数调用方法

来源: src/definitions/modules/dropdown.js34-36 src/definitions/modules/popup.js35-39 src/definitions/behaviors/form.js31-35

设置系统

组件使用一致的设置对象,该对象可以在初始化时被覆盖

来源: src/definitions/modules/dropdown.js42-45 src/definitions/modules/popup.js43-46 src/definitions/behaviors/form.js55-60

总结

Semantic UI 中的核心 UI 组件通过一致的 jQuery 插件架构提供交互功能。每个组件在初始化、事件处理、方法调用和状态管理方面都遵循相似的模式,使得系统易于学习和扩展。组件被设计为协同工作,它们之间有明确的交互模式。

理解这些组件的核心架构,可以让开发人员有效地使用、自定义和扩展 Semantic UI,以创建丰富的交互式用户界面,同时保持行为和外观的一致性。