-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
React migration #3071
Comments
https://github.com/STRML/react-grid-layout - can be relevant for our dashboard grid. |
I don't want to diminish the work that the Mozilla team are doing, nor discount their wisdom and experience. So, thanks to all the people who are updating the frontend framework. My concern is that the overarching direction in the JavaScript ecosystem is somewhat dismissive of web standards, opting to re-invent CSS and HTML inside of JavaScript. From a personal perspective, having followed a web development career over the past ten years, the trajectory of JSX and the churn in the JavaScript ecosystem feel like a net loss for productivity and the ability of new developers to get started on a project. This is not about React vs. Vue. The point is that React has fairly strongly deviated from familiar territory and common web development practices, choosing not to build on the decades of work by W3C, WCAG and others, but to more-or-less replace crucial parts of the Web Platform. Mozilla have actively been promoting web standards, like HTML, CSS, and JavaScript, with their School of Webcraft and other initiatives. I just really wish that Mozilla, of all organizations, would have chosen a framework that more closely aligned with web standards and traditional web development best practices (e.g. separation of semantic structure, declarative style, and imperative logic). |
*WHATWG, not WCAG. Sorry for the alphabet soup 😛 |
Thank you for sharing this, @brylie! It's a bit too late though -- we're 60%-70% into the React migration already. While I understand the concern, I think we should be pragmatic as well. I'm not sure if at the time there was any choice that would be more inline with web standards while also being productive. I'm not sure if today there is one. We're also trying to use common sense and adopt technologies that make sense to us and will serve us in the long term. So for now we're still using LESS for CSS and didn't switch to one of the CSS-in-JS libraries. |
I recognize there has already been a significant investment of great and well-intentioned work in the React migration, and honestly don't intend to diminish that work. In your introduction post, you mentioned Vue, while Angular and Aurelia were were available (possibly among other options). All of the aforementioned frameworks build on web standards, rather than partially reinventing them in JavaScript. Web standards exist so that our technology can serve us for the long-term. I am not sure how we can resolve this great divide, but firmly believe it is in the interest of the community that we keep HTML and CSS around for people who are not as comfortable working with JavaScript. |
Angular is not an option and Aurelia is probably not either. But Vue was an option, but if I'm not mistaken it doesn't really use HTML -- it takes the template you define and converts it into a Virtual DOM. So it might be more familiar for some people, but you can't say it's using web standards. Anyway this discussion is pointless considering the stage of the React migration. We will keep this in mind for the 2025 rewrite 😄 |
Point duly noted, and great work with the migration. I understand it is non-trivial amount of work.
Since you mentioned it, I would like to clarify that Vue, among similar libraries like Aurelia, actually do(es) align strongly with web standards. Just because it pre-processes the HTML templates into render functions, does not mean it is not aligned with web standards.
It also bears mentioning that Vue has a native web component build target: |
Hi @arikfr . Thank you for your good job. |
I want to know this issue processing. Anyone know? |
@codemaster08240328 @vbk2000 It's hard to say how much longer it would be. It's a balancing act, migrating each component while still keeping the product in motion. This issue's description is kept up to date with our progress. |
Relevant discussion : https://discuss.redash.io/t/react-migration-what-should-we-replace-http-resource-with/5003. |
We're at the last stretch of the migration! What's left is (aside from merging open work):
So we don't have to fiddle with Angular<->React interoperability more than we do now, it probably makes to implement in the order above. We can start already migrating models/services that aren't used on the Query/Results pages to a non Angular library already. Once these are done we should do some housekeeping on our webpack/build setup. Maybe even consider I was hoping to do the routing myself, but I'm knee deep in the Python 3 migration testing. I might still do it, depends on how long the other tasks will take. Query Editor/Results pagesI was hoping to use this opportunity to redesign them a bit, but I think we will need to settle for only splitting them and addressing some quick wins so we can move forward with the migration. @kravets-levko you will take the query editor page and @gabrieldutra you the results page?
Services/models migrationAside from one to one conversion from (comments are welcome) |
For the split panes I quickly tested |
@gabrieldutra let's drop the split/resizable panes for the results view and rather implement this version: We would probably need to tweak this, but let's iterate once we have the initial version implemented. |
@mobop I think we no longer need |
Does this issue need any more assistance? |
The codebase is now 100% React. We're still cleaning up some things, but the migration is done. 🎉 |
Status
AppView
$http
/$resource
based objectsAs announced in July, we started the migration of our frontend code to React:
This is a gradual process where until finished, our codebase will use both Angular.js and React. Since version 4 we were shipping this hybrid codebase. The code editor, date parameters and edit in place component use React now.
The text was updated successfully, but these errors were encountered: