Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Which JavaScript framework changes the least?
2 points by csdreamer7 on Jan 3, 2019 | hide | past | favorite | 8 comments
Been following NetNinja's Firebase/React/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's place.

I am still new to mastering JS programming so using an alpha doesn't appeal to me. Plus, I have had similar issues with JQuery and Angular in the past-where they just break things.

What is a good JS framework for single page apps that tries not to break things?

It would be nice to watch a tutorial and not fret that because it's 6 months old it is out of date and things may break.




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

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

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


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?


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


They change it because React add the new context API in 16.3. The legacy one was broken by design, so the React team introduce a new api.


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/

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


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.


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.


React is very stable, component back before react use class still works today (before 2016). I consider that's a pretty stable core API.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: