vuejs / rfcs

RFCs for substantial changes / feature additions to Vue core
4.86k stars 548 forks source link

Further RFCs prior to 3.0.0 release #209

Closed skirtles-code closed 3 years ago

skirtles-code commented 4 years ago

As of 3.0.0-rc.10, there are several breaking changes (relative to Vue 2) that haven't yet been through the RFC process. In several cases it has also been confirmed that an RFC will be needed.

I'm sure there are some people who will be disappointed to see new RFCs holding up the release of 3.0.0. Personally, I am more concerned about having these changes undergo proper scrutiny.

I stress that these changes are already present in the 3.0.0-rc.10 code.

I'm not trying to debate the merits of the changes here, that is what the RFCs are for. However, if anyone knows of any other changes that fall into the same category then please feel free to suggest them.

  1. #1165. The precedence of v-if and v-for have been flipped when using both on the same element.
  2. #1166. Using the ref attribute inside a v-for will no longer create an array in $refs.
  3. #1706. Watchers are now called after rendering by default (flush: 'post'). In Vue 2 they were called before rendering.
  4. #1790 & #1181. Any change to props will trigger a re-render, even if the prop isn't used during render.
  5. #1886. The default function for props no longer has access to this. In particular, this prevents it from using injected properties.
  6. #1925. IE11 support. Specifically making it a lower priority.
  7. #1953. The merging of data is no longer recursive. Only the top-level properties are considered.
  8. #2003. The watch option no longer supports dot-delimited paths.

Perhaps you're thinking that some of the items on my list don't deserve an RFC? Maybe some don't. But be careful not to dismiss the old behaviour just because you can't think of a legitimate use-case. Giving the community an opportunity to provide use-cases is a key reason for having RFCs in the first place. Even if the decision has already been made it's necessary to gather feedback for the migration guide.

I understand that there is a lot of work involved in writing an RFC. My hope is that this list will be helpful in ensuring that nothing gets missed as the 3.0.0 release approaches.

CyberAP commented 4 years ago

Things I noticed:

stephenjason89 commented 4 years ago

Thank you for the great work. Patiently waiting for the official v3 release. I hope support for Laravel 8.0 will be added soon

yyx990803 commented 3 years ago

Thanks a lot @skirtles-code. It is indeed non-ideal for these changes to not have corresponding RFCs, but considering the typical time needed for full RFC feedback cycles, and the impact level of these changes, we don't want to block the 3.0 release for that much longer.

jacekkarczmarczyk commented 3 years ago

@yyx990803

skirtles-code commented 3 years ago

@jacekkarczmarczyk (5) is documented at https://v3.vuejs.org/guide/migration/props-default-this.html. Support has been added for using inject but, as it still differs from Vue 2, it has also been included in the migration guide.