Comments (14)
I've been working with React+ Redux to build replacement Spree fronted. You can get up and running with only a few modifications. This project helped me get my bearings.
React ain't bad. Its much more accessible than it was when I first looked at it in 2015. I am enjoying my time with it!
from solidus.
@hhff we have no plans to support the spree 3.0 backend, sorry.
We do, however, have lots of plans to clean up, improve, and eventually re-style the backend, but don't have any plans to ever use the spree 3.0 codebase. Hawthorn is making some good progress but it'll be a while before it noticeably looks or works better than it does now.
from solidus.
@cbrunsdon I'm 👍 and using Backbone.
from solidus.
@BenMorganIO it's worth taking a look at React as well. We've been having a lot of success / enjoyment with it on our frontend. Would be happy to share knowledge
from solidus.
While it's a long way off - I eventually want to support ember-cli backends with Spree Ember. I've found most Rails devs grok Ember super quick. Might make sense to go with something heavily conventional on the backend for such a large & complex OSS project
from solidus.
I'm 👎 on React, mainly because I've had such a bad Angular experience and React just feels like a de ja vu... If I hadn't had such a bad Angular experience, I might be more neutral to the decision and be willing to try React out, but there's just so many things similar between the two frameworks that I'm unwilling to give React a shot.
- Angular: Lets change best practice.
- React: Lets change best practice.
- Angular: Made by Google.
- React: Made by Facebook.
I just don't feel like I should pick a framework (no matter how fab it is) if they want to change how to do best practice. With backbone and ember, they aren't changing best practice; they're leading by example. Angular and React just seem to want to pull you into their own world. Thing is, its usually a world I never feel comfortable fitting into.
Backbone has Jeremy Ashkenas (maintainer of Underscore.js, Coffeescript, and Docco.js) and Ember has Yehuda Katz (Rails, Bundler, Thor, Handlebars). Angular has Google. React has Facebook. I want to opt for the people, not for the company.
All in all, I'm not convinced Angular or React are the way to go. Hope this description helps communicate my feelings about the JS frameworks.
from solidus.
React is great of you only need Ember Components
from solidus.
@hhff lol
from solidus.
@BenMorganIO I'm curious to hear more about your specific negative experiences with React. We've actually found it quite easy to sprinkle a bit in here and there along side other js structures and significant server-side rendering, and found it to be quite opposite to Angular in terms of pulling you into its own world and opinionated-ness, given that React itself is just the view layer. Additionally, some of the Flux frameworks allow the use of non-react view components.
from solidus.
Jah - I actually like React a lot. I've learnt a ton from it.
In my experience though, for a successful React build (I actually did a Spree storefront in React a while back), you need to sprinkle a lot more than "just react".
"Just react" actually encourages bad inter-app communication practices. That's where Flux comes in to save the day!
That said, So once you've got React + React Router + Flux (and eventually Relay / GraphQL, plus some custom code thrown in to bolt it all together), your FE stack is looking almost identical to Ember + Ember Data.
The difference being that Ember + Ember Data is built to work together perfectly, has first class support for Rails, and if u squint your eyes, it almost looks like a Rails project.
Plus, almost all Ember Addons are heavily tested, scored (partly on their test coverage), can be added to a project with a single line install, and often provide Rails style Generators.
Oh and Ember CLI has a tooling built in. No need to write a Grunt/Gulpfile. Just ember new app
then ember install ember-cli-sass
then start coding.
Ember Engines are not far off either. I couldn't think of a "more manageable" way to build a robust frontend for something as complex as Spree.
TLDR: React is almost always slower to build with, and certainly harder to manage complexity with. It's definitely "easier" to grok for beginners though, and for sure easier to incorporate into an existing project.
from solidus.
Thanks for the detailed comparison of your experience @hhff. Very helpful context!
from solidus.
👍 no worries @athal7 !
from solidus.
@athal7 I'm more gun shy of React. It felt like a dejavu from when I did AngularJS. Some issues that I had with Angular was that there was no convention. This made it too easy for one developer to have their own style even down to where they store files vs another dev. I've one project with ~100 Angular files and some of them 900 lines long. This was a "rockstar" Angular dev. Test suite: 8 tests, 8 failures. I was fairly unwilling to touch the Angular code or volunteer for it. I also spent a significant time learning and doing Angular. I never felt like I was making progress. I just wasn't wrapping my head around it. Even after a year of usage.
This seems to be the type of projects I end up on when its Angular. The convention is the big thing to me. This means anyone who's getting started with JS is enforced to use convention and best practices. Ember also comes with a linter and OMG I ❤️ it so so much. Having worked on big projects where bikeshedding on code style can get slightly out of hand, I love how linters can help minimize it.
I haven't been in the Ember world for too long TBH. I'm not an active user, but it 15 minutes I'm able to do 3 days worth in Angular.
from solidus.
from solidus.
Related Issues (20)
- [Admin] Add order list index page
- PromotionCodeBatch fails generating million codes
- [admin] Backend sections to be ported to SolidusAdmin
- Release v4.2.0
- New admin breaks `assets:precompile` when host app has default Tailwind setup. HOT 2
- [Admin] Search by name in stock HOT 7
- Spree::Variant#set_position conflicts with acts_as_list
- Error when running tests on Macbook Air M1 HOT 6
- Release v4.3
- [Admin] Undefined destroy method call on non soft deletable Spree::Property
- Sandbox does not work in v4.3 and main HOT 7
- Scope Admin Orders to Store HOT 2
- [Admin] products/index/variants/index
- either width or height must be specified HOT 8
- [admin] Consider committing the built tailwind css file into the admin repo
- Backend: use of cdn causes remixicon.symbol.svg to not download due to its being an svg used with <use> tag
- SQL error while searching by variant name in stock management view HOT 3
- Cant install
- [Backend] Backordered items may become on hand when splitting shipment
- Nil variant shipping category not handled properly in form
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from solidus.