
Ask HN: Which JavaScript framework changes the least? - csdreamer7
Been following NetNinja&#x27;s Firebase&#x2F;React&#x2F;Redux tutorial. Was doing well until I ran into an incompatibility with the current version of react-redux-firestore package and the newest version of react. Not exactly sure what the issue is aside from React moving away from const JSX and react-redux-firestore package recommending I use the v3-alpha in it&#x27;s place.<p>I am still new to mastering JS programming so using an alpha doesn&#x27;t appeal to me. Plus, I have had similar issues with JQuery and Angular in the past-where they just break things.<p>What is a good JS framework for single page apps that tries not to break things?<p>It would be nice to watch a tutorial and not fret that because it&#x27;s 6 months old it is out of date and things may break.
======
acemarke
Hi, I'm a Redux maintainer.

We recently released React-Redux v6 [0]. The major change for this release was
how React-Redux internally makes the Redux store state accessible to nested
components, by switching from React's old (and broken) context API to using
the new context API. I wrote a blog post about the technical details of the
change and why we did it [1].

A number of libraries in the ecosystem were accessing the Redux store directly
out of legacy context, which was not part of the React-Redux public API.
Because of this, those libraries broke when used with v6 (as described in our
release notes).

Note that this was not an issue with React or Redux themselves. This was
caused by other libraries in the ecosystem relying on non-public
implementation details, which are always at risk of breaking no matter what
the library or language is.

As you noted, react-redux-firebase is working on updating itself to work
correctly with the latest version of React-Redux. (We've also added some docs
to React-Redux that describe how libraries can safely access the store
directly [2], albeit with the caveat that this is still not directly part of
the public API.) You can also stay on React-Redux v5 and the existing version
of react-redux-firebase if you'd like. There's nothing specifically wrong with
those versions, and they still work together.

Let me know if you've got any questions on this.

[0] [https://github.com/reduxjs/react-
redux/releases/tag/v6.0.0](https://github.com/reduxjs/react-
redux/releases/tag/v6.0.0)

[1] [https://blog.isquaredsoftware.com/2018/11/react-redux-
histor...](https://blog.isquaredsoftware.com/2018/11/react-redux-history-
implementation/)

[2] [https://react-redux.js.org/using-react-redux/accessing-
store](https://react-redux.js.org/using-react-redux/accessing-store)

~~~
Etheryte
Disclaimer, I don't use React-Redux. However, I can't help but be puzzled, if
the core of this issue is people using private APIs why did you create a new
release with another, simply different private API? Why not either keep the
private API the same or make a public interface, since it seems a popular
necessity?

~~~
acemarke
Link [1] in my comment describes why and how we changed from using the legacy
context API to the new `createContext` API.

------
Etheryte
I would suggest using Vue.js[1]. It's the most popular library following
React[2] and one of the strong original pioneers in the field.

One of the strongest sides of Vue is that it's opinionated and very easy to
get started with; if you've used React before you'll feel right at home. While
the library obviously keeps evolving over time, most of the knowledge
applicable from version 1 from years ago is still relevant today — the core
API is very stable.

Most of all, however, I would like to highlight that keeping up to the
bleeding edge of any ecosystem in the modern frontend world will be a pain.
You don't have to use the latest release of everything, use a good stable
build and you'll run into a lot less headaches.

[1] [https://vuejs.org/](https://vuejs.org/)

[2] [https://2018.stateofjs.com/front-end-
frameworks/overview/](https://2018.stateofjs.com/front-end-
frameworks/overview/)

~~~
csdreamer7
I like your post. Been considering Vue for a while.

> You don't have to use the latest release of everything, use a good stable
> build and you'll run into a lot less headaches.

In the above case, there was a security vulnerability with React with the
older version that still worked with v2 of the firebase library.

I asked this question because I wasn't happy seeing React just make breaking
changes and cut support off like that.

~~~
acemarke
What "security vulnerability" are you talking about?

None of React's recent releases have had anything to do with security
vulnerabilities. And, as I described in my other comment, the changes were in
_React-Redux_ , not React, and the changes that broke other libraries were not
considered part of our public API.

