Select2 的 4.0 版本是基于对代码库三年多的开发工作并明确其发展方向的结果。本质上,这是一次完整的重写,解决了之前版本中无法解决的许多可扩展性和可用性问题。
此次发布包含了许多破坏性的更改,但也创建了易于升级的路径以及帮助模块,使您可以保持与旧版 Select2 的向后兼容性。升级需要您仔细阅读发行说明,但迁移路径应该相对简单直接。您可以查看需要进行的最常见更改列表在发行说明中.
此新版本的主要特性包括:
<select> elements for all data adapters, removing the need for hidden <input>元素的向后兼容性。Select2 现在提供了接口,使其可以轻松扩展,任何人都可以创建改变 Select2 工作方式的插件。这是将 Select2 拆分为四个不同部分的结果,每个部分都可以扩展并组合使用,从而打造独特的 Select2。
这些适配器实现了一个一致的接口,并在高级章节中进行了文档记录,让您能够自定义 Select2 实现您的特定需求。Select2 设计允许您混合和匹配插件,大多数核心选项都作为装饰器构建,包裹标准适配器。
Select2 现在使用一个基于 AMD 的构建系统,允许构建仅包含您所需部分的 Select2。虽然尚未创建自定义构建系统,但 Select2 是开源的,并且非常欢迎提交相关的拉取请求。
Select2 包含最小化的almondAMD 加载器,如果您已经使用了 AMD 加载器,则提供了一个自定义select2.amd.js构建。代码库(可在src目录中获得)也使用 AMD,允许您将 Select2 包含在自己的构建系统中,并与现有基础设施一起生成自己的构建。
Select2 使用的 AMD 方法以jQuery.fn.select2.amd.define()/require()提供的形式存在,允许您使用所包含的 almond 加载器。这些方法主要用于翻译,但它们是访问 Select2 提供的自定义模块的推荐方式。