New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Will Preact stay API compatible with React 16? #432

Open
drcmda opened this Issue Sep 27, 2017 · 8 comments

Comments

6 participants
@drcmda

drcmda commented Sep 27, 2017

We usually alias to Preact in production because of the payload savings, but now that we moved to React 16 which was officially released yesterday, preact-compat is down (for instance when returning arrays). That raises questions as to how far we can go with Fiber anyway, even if preact-compat can patch some minor things. But will it support returning arrays, numbers and strings as results, portals, and eventually async scheduling?

screen shot 2017-09-27 at 12 32 03

@developit

This comment has been minimized.

Owner

developit commented Sep 28, 2017

Hi there! All good questions. Preact-compat has to account for all of these changes, but some of them will remain in compat and not in core. Here's a list:

  • Returning Arrays from render(): yes, but this is a huge change for Preact itself. It will come, but it will take time.
  • Numbers & strings: this has always been supported in Preact.
  • Portals: I like the idea, but there are things like event bubbling redirection that might be unworkable within preact. We'll probably have to patch them into compat. On a personal note, I don't think the event propagation redirection piece of this holds enough value for Preact to adopt it and deviate from using browser events directly.
  • Async scheduling: this will absolutely be coming to Preact itself, and we'll ship a decent scheduler enabled by-default in preact-compat once it's available.
@HillLiu

This comment has been minimized.

HillLiu commented Oct 12, 2017

@vorillaz

This comment has been minimized.

vorillaz commented Oct 17, 2017

Waiting for hydrate since this is a breaking change for aliasing with Next.js

@effulgentsia

This comment has been minimized.

effulgentsia commented Oct 17, 2017

Returning Arrays from render(): yes, but this is a huge change for Preact itself. It will come, but it will take time.

Is there an issue to follow for that? #406 is closed. I don't know if it's appropriate to reopen that one or start with a new one: is there definitely agreement that it's for Preact rather than for Preact-compat?

@developit

This comment has been minimized.

Owner

developit commented Oct 21, 2017

@effulgentsia I think most people want Array returns in preact itself, but it's also quite possible doing so would necessitate a rewrite of the diff. In terms of ongoing discussion, @tkh44 was working some magic in #703.

@vorillaz

This comment has been minimized.

vorillaz commented Oct 28, 2017

@developit Watching this closely as Next.js is strictly packed with React 16. Is there any chance to help you out with missing API changes?

@developit

This comment has been minimized.

Owner

developit commented Jan 11, 2018

Yes! Jump on slack and we can work out what to do.

@alexparish

This comment has been minimized.

alexparish commented Jul 13, 2018

Does anyone have a rough timeline for React 16 compatibility? Particularly interested in support for the hydrate function.

developit added a commit that referenced this issue Aug 6, 2018

Add hydrate alias
They're basically the same (see #432)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment