更新日志

0.17.3 (Beta 17)

2023年6月16日

💪 新功能

  • 添加了 🇲🇳 蒙古语 (mn) 语言 - #747
  • 添加了 🇮🇸 冰岛语 (is) 语言 - #748
  • 通过 MultiStep 插件添加了新的 node.next()node.previous()node.goTo() 扩展,用于 multi-step 输入,以便更容易地外部控制 multi-step 输入的导航 - #685
  • 通过 localStorage 插件添加了新的 node.restoreCache() 扩展,允许在提交失败时将表单值恢复到缓存中 - #727

🐛 Bug 修复:

  • 修复了 multi-step 输入的 SSR 水合问题 - #720
  • 修复了 blur 事件可能在路由更改时导致控制台错误的问题 - #735
  • 修复了使用 Floating Labels 插件时 Pro 输入会出现错误的问题 - #742
  • MultiStep 的 beforeStepChange 现在可以与 async 函数调用一起使用 - #743
  • 修复了 file 输入在调用 reset 后无法重新上传相同文件的问题 - #762
  • 通过添加 fk- 前缀,防止 Genesis CSS 关键帧命名冲突。

0.17.2 (Beta 17)

2023年5月17日

🐛 Bug 修复:

  • 修复了当深层嵌套的 v-model 发生变化时未更新的问题 (#722)
  • 修复了自定义输入覆盖了第一个 schema 的问题 (#719)
  • 导出类型 FormKitValidationMessage 以帮助类型验证消息函数 (#695)

💪 新功能

  • localStorage 插件 现在支持新的选项:keycontroldebouncebeforeSavebeforeLoad
  • localStorage 插件 现在可以应用于任何内部类型为 group 的输入,例如 (formgroupmulti-step 等)。

0.17.1 (Beta 17)

2023年5月16日

🐛 Bug 修复

  • 修复了初始化具有相同初始标量值的动态列表时引发错误的问题 (#715)
  • 修复了在某些边缘情况下导致插槽的 value 属性未更新的问题 (#717)。

0.17.0 (Beta 17)

2023年5月12日

💪 新功能

  • 新的 FormKit Zod 插件 - 使用 Zod schema 验证 FormKit 表单。
  • 新的 dynamic 列表属性 允许您轻松创建自己的重复器。
  • 新的 Save to localStorage 插件 用于保存用户在表单中的进度,并在意外事件发生时防止数据丢失。
  • 添加了新的验证规则:require_one (感谢 @devoidofgenius)、contains_alphacontains_alphanumericcontains_alpha_spacecontains_symbolcontains_uppercasecontains_lowercasecontains_numericsymboluppercaselowercase (感谢 @riderx)。
  • 新的 Auto-height textarea 插件 可以创建具有动态调整高度的 textarea 输入。
  • Pro: 新的 Slider 输入
  • 添加了新的 commitRaw 事件,即使输入值没有更改也会触发。
  • FormKitSchema 现在可以使用单个根节点(而不是片段)。
  • 所有 FormKit 输入现在使用根节点而不是片段,这意味着标准的 Vue 指令如 v-show 现在可以工作,通常不再需要为动态输入添加 key#528)。
  • AutoAnimate 插件现在支持动画重复器输入和其他 Pro 输入。
  • 传递给 node.reset() 函数的值将成为输入的新默认值(#621)。
  • 添加了繁体中文 🇨🇳 (zh-TW)
  • 添加了拉脱维亚语 🇱🇻 (lv)
  • 添加了特图姆语 🇹🇱 (tet)
  • 添加了使用 node.extend() 扩展核心节点的新功能。

⚡️ 性能

  • 大幅提高了在大型表单中挂载输入的性能(快了 5-10 倍)。
  • 通过在输入之前对标量值进行差异比较,提高了表单的水合性能。
  • 减少了 @input 事件的噪音,并移除了现在不再需要的 change 事件的防抖动。

🐛 Bug 修复

  • @formkit/observer 现在将观察对 node._value 的更改,以便在您希望对非防抖输入值进行操作时进行操作。
  • @formkit/icons 中的 range 图标已更新,现在只显示一个控制手柄,因为 HTML 范围输入不支持多个值。旧的多控制手柄图标已用于新的 slider FormKit Pro 输入。
  • Pro: 修复了嵌套的 repeater 输入无法正确水合的 bug(#458)。
  • Pro: 修复了删除嵌套的 repeater 输入时引发错误的 bug(#457)。
  • 修复了在自定义输入上手动绑定 @blur 事件时,blur 事件会多次触发的 bug(#413)。
  • 修复了 v-model 只在每隔一个输入时触发 input 事件的 bug(#463
  • 修复了当数组的长度为 1 且数组中的唯一值为数字时,schema 会迭代数组的值的 bug(#635
  • 修复了在使用 stopOnFalse 时,node.walk() 提前结束的问题。
  • 修复了在 SPA 浏览和 SSR 环境中的内存泄漏问题(#475

0.16.0(Beta 16)

2023年3月14日

新版本方案

Beta 16是FormKit的第一个没有预发布标识符的版本。Beta 16和所有剩余的beta版本将在0.x.x语义版本下发布。首个稳定版本将是1.0.0,计划于今年晚些时候发布。这种版本变更应有助于完成我们的beta发布周期时的软件包管理器依赖解析。

💪 新功能

  • Pro: 新增Transfer List输入!这是一个很好的选项,可以帮助用户从大量数据中选择信息。
  • Pro: floating labels插件现在支持FormKit Pro输入。
  • Pro: mask input现在通过提供overlay选项支持多种颜色。
  • 添加了一个新的dirty-behavior属性,允许用户选择compare行为,该行为将当前输入的值与原始输入的值进行比较。如果将输入更改回其原始状态,则context.state.dirty标志将恢复为false。
  • 为一些新的UI和验证规则添加了i18n翻译。

🐛 Bug修复

  • options属性(用于selectradiocheckboxes和一些pro输入)现在可以区分nullundefined值。
  • 修复了@formkit/nuxt模块和语法高亮的问题。
  • 修复了一个bug,当更新对象(如组)时,导致与无关的输入的dirty状态不正确地设置为true#520)。
  • floating labels插件现在在没有焦点时隐藏占位符(#574)。
  • 修复了一个bug,导致表单在提交失败时无法像表单的子元素一样接收到submitted状态(#503)。
  • multi-step输入现在在有条件地渲染步骤时保留步骤顺序(#613)。
  • 修复了复选框和单选按钮的tailwind样式bug(#584)。

1.0.0-beta.15

2023年2月6日

此版本向@formkit/addons包添加了新的第一方插件,并为CSS和Tailwind CSS用户提供了错误修复和样式更新。

💪 新功能

  • 使用@formkit/addons中的新的多步骤插件轻松创建多步骤表单或在表单中包含多步骤部分。附带可导入的独立CSS样式,可与我们的genesis主题很好地配合使用。查看完整文档
  • 使用@formkit/addons中的新的浮动标签插件,为所有text系列(textemailurl等)和textarea输入启用浮动标签。查看完整文档
  • 为插件和自定义输入添加了新的NextPrevious字符串以供UI本地化对象使用。

🐛 Bug修复

  • 修复了@formkit/themes中缺少的Tailwind CSS genesis主题导出路径。
  • 为按钮添加:focus-visible样式,以在使用键盘导航时显示焦点状态。
  • 在Tailwind CSS Genesis主题中为submit按钮添加缺失的loading样式。

📘 文章

1.0.0-beta.14

2023年1月21日

此版本解决了beta.13中针对Tailwind用户引入的一些问题。

🐛 Bug修复

  • @formkit/themes/tailwindcss恢复为仅包含FormKitVariants插件的default导出。
  • 将提供的Tailwind Genesis主题移动到新的导出路径@formkit/themes/dist/tailwindcss/genesis
  • 将删除类操作符从!更改为$remove:,以避免与Tailwind内置的!操作符冲突,该操作符将!important添加到样式规则中。
  • 修复了在使用提供的FormKit Tailwind Genesis主题时默认图标无法加载的问题。

1.0.0-beta.13

2023年1月19日

💪 新功能

  • 添加了新的<FormKitMessages>组件,允许重新定位表单的验证和错误消息,并允许grouplist输入显示自己的错误和验证消息。
  • 在删除FormKit输入的某个部分的类时,您可以使用!前缀操作符有选择地删除现有类,而无需使用长格式对象语法。例如,outer-class="my-class !formkit-outer"会添加my-class并删除默认的formkit-outer类。
  • 添加了Catalan flag加泰罗尼亚语(感谢@petergithubmgw)。
  • checkboxradio输入现在在其各自的包装器周围添加了data-checked属性,便于添加自定义样式以区分选中和未选中状态。
  • 改进了一些语言(enptzh)的验证消息。
  • Pro: 新增Mask Pro input
  • Pro: 添加了empty-message属性,允许在未传递选项(dropdownautocompletetaglist)时在列表框中呈现消息(#502)。
  • Pro:dropdownautocompletetaglist添加了checked属性(#350)。
  • Pro:taglistautocompletemultiple输入添加了max属性(#501)。
  • Pro: 添加了closeOnSelect属性,将保持listbox在进行选择时展开(autocomplete多选和taglist)。
  • Pro: 添加了forceExpanded属性,用于开发目的,强制listbox保持打开状态(dropdownautocompletetaglist)。
  • Pro: 所有Pro输入现在都可以通过disabled属性禁用。

🐛 Bug修复

  • 修复了一个bug,date_after规则由于时区问题显示了错误的验证消息。#488
  • 修复了一个bug,自动生成的id由于特殊字符没有一个安全的属性值。#517
  • v-model的值现在可以初始化为undefined#235
  • 修复了一个bug,导致内联的validation-rules属性意外递归。#514
  • 修复了一个bug,导致具有多个选项的复选框的标签不能被sections-schema覆盖。#541
  • 修复了一个bug,导致标签在已渲染的验证消息中不能动态更改。#297
  • 修复了一个bug,导致disabled属性需要null而不是false来在外部包装器上渲染data-disabled属性。#511
  • 修复了一个bug,阻止了插槽条件(即在<template v-slot>块上使用v-if)。#489
  • 修复了NuxtNuxt playground的兼容性问题。
  • 修复了一个bug,导致使用sections-schema的部分不能正确地遵守sections-schema属性。
  • 修复了与Tailwind前缀和后缀图标变体的问题。#530
  • Pro: 修复了一个taglist的bug,重复的选项从API加载。#497
  • Pro: 修复了一个bug,当multiple属性设置为false时,taglist会渲染重复的props。#494
  • Pro: 修复了一个bug,当快速、重复或粘贴内容时,autocompleteoptions会重复。#431
  • Pro: 修复了一个问题,当提供的值是对象字面量时,无法删除autocompletetaglist的默认值。#505
  • Pro: 修复了一个问题,当没有传递options时,listbox仍然可见。#504

📙 文档和Playground

1.0.0-beta.12

2022年11月15日

💪 新功能

  • Pro:现在可以使用新的Taglist Pro输入
  • 添加npx formkit create-app命令,方便快速启动新的FormKit项目。
  • 改进了所有语言的length规则验证消息。
  • 添加了🇬🇷希腊(uk)语言#460
  • 添加了🇳🇴挪威博克马尔(nb)语言#418
  • 添加了🇸🇰斯洛伐克(sk)语言#401
  • Pro:现在可以禁用所有Pro输入。
  • Pro:改进了Genesis Pro主题。
  • Pro:可以通过拖放重新排序具有多个选项的自动完成。
  • Pro:向消息模式添加了缺失的属性。

🐛 Bug修复

  • 修复了一个bug,标签插槽在没有标签属性的情况下无效。#456
  • 修复了一个bug,无法动态更改可用的验证规则。#449
  • 修复了一个bug,当在组内时交换键不会清除输入的值。#446
  • 修复了一个bug,导致无法从Schema访问Date对象的方法。#406
  • 修复了一个路径问题,使得第三方难以访问文件。#404
  • 修复了一个bug,阻止了walkTree函数上的stopIfFalse参数。
  • 修复了一个bug,使用null值初始化的选择输入没有一个好的值。#415
  • Pro:修复了一个bug,count:blocking事件在重复器中没有正确发出。
  • Pro:更新了重复器索引,使其成为数字而不是字符串。#422
  • Pro:修复了一个自动完成的bug,下一页选项覆盖了当前页。#447
  • Pro:修复了一个bug,Pro输入在失去焦点时没有显示验证消息。#403

1.0.0-beta.11

2022年9月29日

🎉 新功能

  • 为FormKit Pro Inputs打下基础!

🐛 Bug修复

  • 修复了复选框和单选框元素的“help”插槽出现两次的bug #353
  • 修复了FormKit AutoAnimate插件在Nuxt中失败的bug #361
  • 修复了模式中的一个bug,当对不存在的子属性进行点符号引用时,会在引用之后输出[Object object] #368
  • FormKit现在可以与Nuxt 3.0.0-rc.83.0.0-rc.9一起使用 #371#383
  • 修复了一个bug,用户无法通过插件使用hooks来更新v-modeled值 #391
  • 修复了一个bug,用户无法使用TypeScript导入@formkit/themes/tailwindcss #376
  • 修复了一个bug,导致默认图标在直接包含在配置中时永远无法加载。
  • 修复了一个bug,复选框的“required”验证只在第一次起作用 #169

1.0.0-beta.10

2022年7月29日

🎉 新功能

  • 输入定义现在具有可选的family属性,该属性添加了一个data-family属性,并在node.props.family上设置值。这对于将插件和样式应用于整个输入“family”非常有用,例如文本输入的“family”,它将应用于textemailpasswordnumber等。
  • 输入定义现在包括一个可选的forceTypeProp属性,它确保node.props.type以给定值初始化,即使输入是在不同的名称下注册的。例如,myModifiedCheckbox仍然可以报告“checkbox”作为node.props.type
  • 当复选框和单选框有多个选项时,为它们添加了data-multiple属性。
  • type="form"输入添加了新的@submit-invalid事件。当用户尝试提交一个具有无效输入的表单时,触发此事件。
  • @formkit/validation中添加了新的getValidationMessages辅助函数,用于提取节点及其验证消息的Map。
  • 在复选框和单选框中添加了新的decorator-icon部分,可以轻松使用自定义SVG图标。
  • 在内置图标包中添加了新的“check”和“circle”图标。
  • 添加了🇦🇿阿塞拜疆语(az)。
  • 添加了🇺🇦乌克兰语(uk)。

🐛 Bug修复

  • 修复了复选框不再显示帮助文本的回归问题(#310)。
  • 修复了AutoAnimate插件在Nuxt SSR上失败的bug(#330)。
  • 修复了当编辑v-modeled表单时,所有输入的context.state.dirty都变为true的bug(#311)。
  • 修复了选择列表的@change事件和v-model值传播之间的竞争条件的bug(#335)。
  • 修复了条件props/attrs返回数组时返回对象而不是数组的bug(#317)。
  • 修复了当调用node.reset()时,空文件输入被设置为undefined而不是空数组的bug(#319)。
  • 修复了当禁用prop设置为非nullish值时,禁用复选框和单选框输入的bug(#307)。

1.0.0-beta.9

2022年6月29日

⚠️ 破坏性变更

  • 文件输入的removeFiles部分已更名为fileRemove
  • fileRemove(以前是removeFiles)部分以前呈现为<a>标签,现在更改为button
  • @formkit/inputs中的组合函数已被“sections”替换。这只会影响那些从现有组合函数创建自己的输入的用户。

🎉 新功能

  • 图标!FormKit现在支持图标,包括自动CDN交付的第一方MIT许可的图标包。在新的图标文档页面上了解更多信息。
  • AutoAnimate!FormKit现在通过一行代码包含了AutoAnimate插件,为FormKit带来了AutoAnimate支持
  • 导出!您现在可以导出任何现有的输入,并使用新的@formkit/cli命令行工具自由重组它们。通过添加、删除、更新或重新排序部分来修改现有输入,或者将您自己导出和修改的输入变体添加到输入库中。
  • 所有输入都已重构为使用改进的模式组合API,可以轻松组合和修改基于模式的输入。
  • 在模式规范中添加了新的meta属性(#248)。
  • 可以使用defaultConfig()中的新theme选项通过CDN安装FormKit CSS主题。
  • 添加了新的submitsetErrors hooks。
  • 添加了🇧🇬保加利亚语。
  • 添加了🇭🇺匈牙利语。
  • 添加了🇰🇿哈萨克语。
  • 添加了🇷🇸塞尔维亚语。
  • 添加了🇹🇯塔吉克语。

🐛 Bug 修复

  • 修复了在使用 $formkit 简写语法时,key 属性无法工作的 bug(#232)。
  • 修复了 @blur 事件处理程序未被调用的 bug(#239)。
  • 修复了在旧版 Safari 浏览器上 for 循环迭代次数多 1 的 bug(#299)。
  • 为 FormKit 输入添加了自动键,修复了在条件输入中未使用显式键时的一些反应性 bug。
  • input-errors 属性设置为空对象 {} 时,将重置之前设置的任何错误(#277)。
  • alphaalpha_spaces 规则中添加了对捷克/斯洛伐克变音符的支持(#281)。

📙 文档

1.0.0-beta.8

2022 年 5 月 10 日

⚠️ 破坏性更改

  • tailwindcssunocsswindicss 插件现在必须从 @formkit/themes 包的子路径中导入。例如:
import formKitTailwindPlugin from '@formkit/themes/tailwindcss'

🐛 Bug 修复

  • windicsstailwindcssunocss 中删除了不正确的导入。

1.0.0-beta.7

2022 年 5 月 9 日

⚠️ 破坏性更改

  • update:model-value 事件现在只在使用 v-model 指令时触发。
  • input 事件现在进行了防抖,以减少发出的噪音。您可以使用新的 input-raw 来监听每个输入事件。
  • 通过 setErrors 设置的错误现在默认情况下会在输入时自动清除。要恢复到以前的行为,请在全局配置对象中设置 preserveErrors: true
  • @formkit/tailwindcss 包现在已弃用 —— formKitTailwind 插件和 generateClasses 函数已移动到 @formkit/themes 包中。

🎉 新功能

  • checkboxradioselect 输入(使用 :options)现在可以使用任何数据类型作为其值,如数字、对象甚至 null#85)。
  • 添加了新的 node.clearErrorsclearErrors 实用程序,用于清除输入或表单中的后端错误。
  • 现在输入在用户输入时会自动清除使用 node.setErrors() 设置的任何错误。您可以使用 preserve-errors="true" 覆盖此默认行为(保留输入上的错误)。
  • 添加了一个新的 node.addProps 函数,用于在自定义插件中添加新的 props。
  • 添加了修改消息的新钩子 message
  • 添加了一个新的核心事件 reset —— 在表单重置后触发。
  • 添加了一个新的 index 属性,允许在父级 list 类型中的给定索引处注入输入。
  • <FormKit> 组件的 input 事件现在进行了防抖,这意味着它发出的噪音要少得多。
  • 导出了所有输入特性函数 import { features } from '@formkit/inputs'
  • <FormKit> 组件添加了一个新的 input-raw 事件,它会在输入、列表、组或表单中的每个单个输入事件中触发(非常嘈杂)。
  • 核心节点现在是 inputinput-rawsubmitsubmit-raw 事件的第二个参数。
  • 添加了新的核心节点事件 dom-input-event,其负载为原生 HTML Event 对象。
  • @formkit/themes 现在包括了针对 Tailwind CSS (formKitTailwind)、Windi CSS (formKitWindi) 和 Uno CSS (formKitUno) 的插件函数的命名导出。通过将正确的插件添加到 CSS 框架的配置文件中,您将可以访问各种 formkit 变体,如 formkit-invalid:formkit-disabled:
  • @formkit/themes 现在包括了 generateClasses 辅助函数,它允许您根据输入类型轻松提供不同的类列表给 ${sectionKey}
  • 添加了 🇸🇪 瑞典语。
  • 添加了 🇸🇮 斯洛文尼亚语。
  • 添加了 🇷🇴 罗马尼亚语。
  • 添加了 🇯🇵 日语。
  • 添加了 🇹🇭 泰语。
  • 改进了 🇵🇱 波兰语。

🐛 Bug 修复

  • 🔥 大大提高了 v-model 的性能和可靠性,特别是对于深层嵌套结构,如带有列表和组的表单。
  • 修复了将 null 值引发错误的问题(#151)。
  • 修复了在更新响应式时 validation-visibility 未更改的 bug(#159)。
  • 修复了 preserve 关键字阻止某些表单提交的 bug(#145)。
  • 修复了 @formkit/tailwind 配置的 TypeScript 类型错误(#143)。
  • 修复了将对象作为 on-value 的单个复选框在使用 :value 属性时无法设置其初始值的 bug。
  • 修复了在标签 prop 更改时未更新验证规则的 bug(#170)。
  • 修复了在具有显式 multiple="false" 属性和占位符的选择列表上导致错误的默认选择的 bug(#148)。
  • 修复了在使用嵌套引用时 classes prop 无法对 Vue 的响应性作出反应的 bug(#155)。
  • 修复了在没有指定 disabled="true" 的情况下,通过在表单上使用 disabled 属性应用禁用的提交按钮的 bug(#215)。
  • 修复了模式编译器的一个 bug,导致括号中引号字符串的空格被错误地移除(#150)。

1.0.0-beta.6

2022年3月10日

🎉 新功能

  • 添加新的 alpha_spaces 验证规则 (#83)
  • 添加 🇨🇿 捷克语 (感谢 @dfridrich)
  • 添加 Frisian flag 弗里斯兰语 (感谢 @arjendejong12)

📙 文档

  • 新的配置文档,解释了节点选项、配置和属性之间的关系。

🐛 Bug 修复

  • 修复了通过 node.input() 设置单选框输入时导致反应性丢失的 bug (#139)
  • 改进了 @submit 事件的 TypeScript 注释 (#130)
  • 修复了如果设置为空数组,选择框不会渲染的问题 (#129)
  • 修复了在 Nuxt 3 上运行构建项目时导致服务器端渲染错误的问题 (#113)
  • 修复了在组件的插槽中引用迭代数据时导致模式变量作用域丢失的 bug (#91)

1.0.0-beta.5

2022年3月8日

⚠️ 破坏性变更

  • data-loading 属性已从表单的提交按钮移动到 <form> 标签本身。

🎉 新功能

  • 添加新的 @formkit/tailwindcss 插件,可以轻松创建适用于 FormKit 表单的 Tailwind 主题。查看创建 Tailwind CSS 主题指南了解更多详情。
  • 添加了一个新的编程式 reset 函数。可以在任何输入、组、表单或列表上执行此操作,它将将值恢复到初始状态。它还会重置 context.state 对象(如 blurreddirty)。
  • 通过为所有提供的输入类型添加 aria-describedbyaria-live 来改进可访问性。aria-describedby 现在会定位到帮助文本、验证消息和错误消息(由使用 for 属性的 <label> 标签提供标签)。
  • 现在,组、列表和表单可以将 undefined 值应用于其子元素。换句话说,如果一个表单是 v-modeled,并且其值设置为空对象 {},它将清除整个表单。
  • 添加新的 context.state.settled 属性,表示输入的内部去抖动周期已结束,并且值已完成提交到表单。
  • 在已提交的输入上添加 data-submitted 属性。
  • 添加新的 fileName 部分键(感谢 @santi)。
  • 添加接受核心节点的新的 parent 属性,用于高级用例,其中输入与其表单或数据结构解耦。
  • 添加 🇱🇾 阿拉伯语 (感谢 @Ahmedelforjani)
  • 添加 🇩🇰 丹麦语 (感谢 @bjerggaard)
  • 添加 🇮🇩 印度尼西亚语 (感谢 @rama-adi)
  • 添加 🇮🇹 意大利语 (感谢 @punga78, @Archetipo95)
  • 添加 🇵🇱 波兰语 (感谢 @xxSkyy)
  • 添加 🇰🇷 韩语 (感谢 @bwp618)
  • 添加 🇻🇳 越南语 (感谢 @oanhnn)
  • 改进了 🇫🇷 法语 (感谢 @pop123123123)

🐛 Bug 修复

  • 修复了在使用浏览器自动填充时,验证错误可能会在解决之前闪烁 20 毫秒的 bug (#99)。
  • 修复了在模式中的类属性(如 input-class)不正确地遵循 $reset 命令的 bug,因为它被视为变量 (#61)。
  • 修复了当 section-key 包含多个单词时,无法通过 section-key 类属性修改类的 bug,例如 file-list-classfile-item-class (#120)。

1.0.0-beta.4

2022年2月22日

⚠️ 破坏性变更

  • Genesis 主题现在应该从 import '@formkit/themes/genesis 导入。

🎉 新功能

  • 添加编程式表单提交
    • 可以通过节点 node.submit() 提交(包括表单的任何子节点)。
    • 可以通过函数 this.$formkit.submit('form-id') 提交(对于组合 API,使用 submitForm('form-id'))。
  • 改进了 setErrors 的开发体验:
    • 现在可以直接在节点上调用 node.setErrors(nodeErrors, childErrors)
    • setErrors 现在支持纯字符串 node.setErrors('My error')
  • 提交处理程序现在会传递表单的节点,以便轻松设置错误。
  • <FormKit> 组件的核心节点现在可以通过模板引用访问。
  • 当输入具有失败的验证消息并且当前显示时,在 outer 部分添加 data-invalid 属性(示例)。
  • 当输入具有显式放置的错误(通过属性或 setErrors)时,在 outer 部分添加 data-errors 属性。
  • 当输入满足以下条件时,在 outer 部分添加 data-complete 属性(示例):
    • 要么:
      • 输入具有验证规则。
      • 验证规则全部通过。
      • 输入没有错误。
    • 或者:
      • 输入没有验证规则。
      • 输入没有错误。
      • 输入是脏的并且具有值。
  • 新的 context.state 属性:
    • state.rules - 当输入具有验证规则时为 true。
    • state.errors - 当输入上有显式错误时为 true。
    • state.complete - 与 data-complete 的逻辑相同。
    • state.validationVisible - 当满足 validation-visibility 条件时为 true(如果有验证错误,则显示验证错误)。
  • 重构了 Nuxt 3 模块,以提高构建时间和文件解析能力。
  • 添加 🇮🇷 波斯语支持 (感谢 @shahabbasian)
  • 添加 🇧🇷 葡萄牙语支持 (感谢 @r-martins)
  • 添加 🇹🇷 土耳其语支持 (感谢 @ragokan)
  • 添加 🇫🇮 芬兰语支持 (感谢 @mihqusta)
  • 添加 🇦🇷 西班牙语支持 (感谢 @inibg)

📙 文档

🐛 Bug 修复

  • 修复了在 Nuxt 和 vite-ssg/vitesse 上进行服务器端渲染和服务器端生成时抛出异常的问题(#81)。
  • 修复了阻止 file 输入触发自定义 onChange 事件的 bug(#90)。
  • 修复了阻止表单将其 id 输出到 DOM 的 bug。
  • 修复了 Genesis 主题中的样式问题,当使用占位符时,在选择列表项被选中之前会变成灰色(#59)。
  • 修复了导致表单上的 :value 属性在输入时被改变的 bug(#72)。
  • 修复了默认属性和自定义输入定义属性之间的 prop:{propName} 事件的不一致性(#73)。

1.0.0-beta.3

2022年2月22日

  • beta.3 本来是一个很棒的版本,但我们决定跳过它,直接进入 beta.4 👀!开个玩笑。我们在使用 npm 时遇到了问题,不得不升级 🤦。

1.0.0-beta.2

2022年2月3日

🎉 新功能

  • 新的 @formkit/nuxt 包是一个完整的Nuxt 3 模块,使得在 Nuxt 3 中使用 FormKit 变得尽可能简单!
  • defaultConfig 现在包含一个新的包 @formkit/dev,它将 FormKit 的错误代码解码为有用的控制台消息(无需操作)(#56)。
  • FormKit 现在正式以 MIT 许可证开源!
  • preserve 键现在适用于所有后代元素(#53)。
  • @formkit/i18n 包中导出所有文本格式化函数(#54)。
  • 添加了 🇳🇱 荷兰语支持(感谢 @arjendejong12)。
  • 添加了 🇭🇷 克罗地亚语支持(感谢 @antemarkic)。
  • 改进了 🇩🇪 德语支持(感谢 @tosling)。

📙 文档

  • 新的安装文档。您不再需要身份验证令牌才能从 @formkit 组织安装!
  • Nuxt 安装文档
  • 改进了关于选择性消息覆盖的国际化文档。

🐛 Bug 修复

  • 修复了当从父节点设置并使用存储在外部变量中的 options 属性时,多选复选框无法显示当前值的 bug(#55)。
  • 修复了当某些原因导致输入重新渲染时,选择输入的占位符被移除的 bug(#52)。
  • 修复了选择输入的占位符颜色(#51)。

1.0.0-beta.1

2022年1月28日

🎉 新功能

  • 当异步提交处理程序正在进行时,表单会自动禁用(#44)。
  • 添加了一个新的 submit-behavior 属性,用于取消新的自动禁用表单功能。
  • @formkit/vue 包中将 Vue 到 FormKit 绑定插件导出为 bindings
  • 自动忽略类型为 buttonsubmit 的输入。
  • defaultConfig 中引入了一个新的 messages 键,允许对区域设置进行部分覆盖。这允许对已注册的区域设置进行选择性消息覆盖(#42)。
  • 模式编译器现在支持 "undefined" 作为有效输出(换句话说,$: undefined 将输出值 undefined 而不是字符串 "undefined")。
  • 添加了 🇮🇱 希伯来语区域设置(感谢 @Hepi420)。
  • 添加了 🇨🇳 中文区域设置(感谢 @myleslee)。

🐛 Bug 修复

  • 修复了当从 grouplistform 重新填充时,具有 options 的复选框无法正确填充的问题(#45)。
  • 修复了当缺少标签属性时,具有 options 的复选框显示不正确的问题(#41)。
  • 显著改进了对“合成”属性的 TypeScript 支持(#43)。

1.0.0-alpha.5

2022年1月20日

⚠️ 破坏性更改

  • <FormKit> 组件上的 validation-behavior 属性更改为 validation-visibility
  • <FormKit> 组件上的 schema 属性更改为 sections-schema

🎉 新功能

  • 添加了原生的 file 输入类型,支持一些增值功能:
    • 仅显示重新填充。
    • 拖放。
    • 输入清除。
  • 添加了 createInput 辅助函数,使得编写自定义输入变得容易。
  • 新的 incomplete-message 属性允许内联自定义(或禁用)表单在尝试提交且所有输入都无效时显示的消息。
  • 更新了 defaultConfig,以接受自定义输入。
  • 添加了前缀部分键,允许在输入元素之前立即注入内容。
  • 添加了后缀部分键,允许在输入元素之后立即注入内容。
  • 添加了 🇷🇺 俄语区域设置(感谢 @andreimakushkin)!
  • 重构 Genesis 主题,使用更健壮的 CSS 变量结构。
  • 添加了一个新功能,允许在模式中使用 __raw__ 前缀来传递原始值而不是解析后的结果的 propsattrs 属性(#36)。

📙 文档

🐛 Bug修复

  • 修复了一个导致表单上未显示不完整消息的错误(#29)。
  • 修复了@submit@submit-raw事件的TypeScript类型定义。
  • 修复了lengthbetween验证消息中数字顺序的问题,始终将较小的数字放在前面(#35)。
  • 修复了选择列表中的问题(#32),其中:options属性不接受数字值。

1.0.0-alpha.4

2021年12月16日

🎉 新功能

  • 新的验证规则“提示” - 修改验证规则行为的修饰符。支持的提示允许您:
    • 在字段为空时运行规则。
    • 强制运行规则,即使前面的规则失败。
    • 防抖动验证规则。
    • 使验证规则变为可选。
  • 当输入位于表单内并且未挂载(例如v-if),现在会从表单数据中删除其值并取消注册其核心节点
  • 新的preserve属性允许输入在被移除时不从组、列表和表单中删除其数据。

🐛 Bug修复

  • 修复了一个导致数字值单选框和复选框选项呈现不正确的问题。
  • 修复了一个导致placeholderoptions属性之后时无法呈现的错误。
  • 修复了使用祖先配置设置延迟值时不被尊重的问题。

1.0.0-alpha.3

2021年12月13日

🎉 新功能

  • 表单错误处理已到来。您现在可以使用input-errors属性或$formkit.setErrors()方法在整个表单、组或列表上设置输入错误。在表单文档中了解更多。
  • 新的$formkit.setLocale()可以动态更改所有显示消息的语言。
  • 添加了🇫🇷法语和🇩🇪德语本地化(感谢@HoreKk@digitalkaoz)。
  • 添加了新的rootConfig代理对象,用于存储全局基本配置和属性值(配置系统的重大重构)。
  • FormKitObservedNode实例中添加了账本依赖跟踪。
  • 表单上的提交按钮现在使用默认的“提交”标签的语言环境。
  • 当父级添加子级时,会发出新的child节点事件
  • length规则现在可以按任意顺序接受最大/最小参数,例如length:15,5length:5,15都会得到相同的结果。
  • 添加了一个新的getNode函数,用于直接访问FormKit节点使用组合API。
  • 改进了@formkit/theme CSS 导入位置

🐛 Bug修复

  • 修复了一个导致list输入的子项有时在显示验证错误时抛出异常的问题。
  • 改进了几个验证错误消息。
  • 修复了选择输入的问题,阻止原始的node.input()调用在Vue中触发响应性。

1.0.0-alpha.2

2021年11月30日

🎉 新功能

  • 新的$formkit模式简写,用于在模式中使用FormKit输入(Issue #15)。
  • 表单、列表和组输入上的新disabled属性自动禁用所有子输入(Issue #16)。
  • 表单上的新submitAttrs属性允许您将属性传递给表单的提交按钮。
  • 添加了一个新的通用ignore属性,防止使用输入数据。

🐛 Bug修复

  • 修复了一个问题,当在FormKit组件的children属性中使用时,模式无法渲染表达式(Issue #21)。
  • 添加了一个检查,以防rootClasses函数错误地返回undefinedIssue #17)。
  • 修复了一个导致表单的提交按钮污染表单数据对象的bug,添加了一个submit_x属性(Issue #22)。
  • 修复了一个导致$cmp模式节点在模式的根对象被重置时无法重新挂载的bug,导致完全重新解析(Issue #14)。