返回列表 发帖

Vue 3.0 attribute强制行为#迁移策略

#枚举 attribute
缺少枚举 attribute 和 attr="false" 可能会产生不同的 IDL attribute 值 (将反映实际状态),描述如下:

缺少枚举attr        IDL attr & 值
contenteditable        contentEditable → 'inherit'
draggable        draggable → false
spellcheck        spellcheck → true
为了保持原有的行为,并且我们将强制使用 false 为 'false',在 3.x Vue 中,开发人员需要将 v-bind 表达式解析为 false 或 'false',表示 contenteditable 和 spellcheck。

在 2.x 中,枚举 attribute 的无效值被强制为 'true'。这通常是无意的,不太可能大规模依赖。在 3.x 中,应显式指定 true 或 'true'。

#将 false 强制为 'false' 而不是删除 attribute
在 3.x,null 或 undefined 应用于显式删除 attribute。

#2.x 和 3.x 行为的比较
Attributes        v-bind value 2.x        v-bind value 3.x        HTML 输出
2.x “枚举attribute” i.e. contenteditable, draggable and spellcheck.        undefined, false        undefined, null        removed
true, 'true', '', 1, 'foo'        true, 'true'        "true"       
null, 'false'        false, 'false'        "false"       
其他非布尔attribute eg. aria-checked, tabindex, alt, etc.        undefined, null, false        undefined, null        removed
'false'        false, 'false'        "false"

返回列表