diff --git a/active-rfcs/0024-attribute-coercion-behavior.md b/active-rfcs/0024-attribute-coercion-behavior.md new file mode 100644 index 00000000..8e0cdefb --- /dev/null +++ b/active-rfcs/0024-attribute-coercion-behavior.md @@ -0,0 +1,151 @@ +- Start Date: 2020-01-30 +- Target Major Version: 3.x +- Reference Issues: [#8731](https://github.com/vuejs/vue/issues/8731) [#8735](https://github.com/vuejs/vue/pull/8735) [#9397](https://github.com/vuejs/vue/issues/9397) [#11053](https://github.com/vuejs/vue/issues/11053) +- Implementation PR: + +# Summary + +- Drop the internal concept of enumerated attributes and treat those attributes the same as normal non-boolean attributes. +- No longer removes attribute if value is boolean `false`. Instead, it's set as `attr="false"` instead. To remove the attribute, use `null` or `undefined`. + +# Motivation + +In 2.x, we have the following strategies for coercing `v-bind` values: + +- For some attribute/element pairs, Vue is always using the corresponding IDL attribute (property): [like `value` of ``, `