Earlier quoted context omitted.
IMO, context does a lot to remove the value of MobX from React applications. Not necessarily Redux; Redux gives you some additional stuff, particularly around state tracking and rewinding. But I haven't seen a MobX project where a judiciously used context doesn't solve the same problem within the React-specific ecosystem.
The value of mobx is that you implicitly link each component to its data dependencies by dereferencing arbitrary paths into your storage objects in the render() function so that the component rerenders only when data at those paths change. Does the Context achieve this as well? From a quick search, the Context seems to force rerender of any consumer on any change.
Base Web, Uber’s New Design System for Building Websites in React
101–110 of 156 posts
Re: Base Web, Uber’s New Design System for Building Websites in React
#102I guess we can add Uber to this list of corporate frameworks... https://news.ycombinator.com/item?id=18235887 https://element.eleme.io/ https://ant.design/ https://quasar-framework.org/ https://at-ui.github.io/at-ui/ https://developer.microsoft.com/en-us/fabric https://vmware.github.io/clarity/ http://appnexus.github.io/lucid/ https://ng-lightning.github.io/ng-lightning/ https://blueprintjs.com/ http://www.jetbrains.…
Dumb question maybe but why is Bootstrap (from Twitter) not on this list? What are the inclusion criteria?
If you want style guides and design systems then the link by "oedmarap" is much better.
Re: Base Web, Uber’s New Design System for Building Websites in React
#103I guess we can add Uber to this list of corporate frameworks... https://news.ycombinator.com/item?id=18235887 https://element.eleme.io/ https://ant.design/ https://quasar-framework.org/ https://at-ui.github.io/at-ui/ https://developer.microsoft.com/en-us/fabric https://vmware.github.io/clarity/ http://appnexus.github.io/lucid/ https://ng-lightning.github.io/ng-lightning/ https://blueprintjs.com/ http://www.jetbrains.…
Re: Base Web, Uber’s New Design System for Building Websites in React
#104I guess we can add Uber to this list of corporate frameworks... https://news.ycombinator.com/item?id=18235887 https://element.eleme.io/ https://ant.design/ https://quasar-framework.org/ https://at-ui.github.io/at-ui/ https://developer.microsoft.com/en-us/fabric https://vmware.github.io/clarity/ http://appnexus.github.io/lucid/ https://ng-lightning.github.io/ng-lightning/ https://blueprintjs.com/ http://www.jetbrains.…
I've been evaluating most of these frameworks, and as far as I know Base UI is the smallest and lightest out of all these: https://bundlephobia.com/result?p=baseui@6.15.1
Re: Base Web, Uber’s New Design System for Building Websites in React
#105I guess we can add Uber to this list of corporate frameworks... https://news.ycombinator.com/item?id=18235887 https://element.eleme.io/ https://ant.design/ https://quasar-framework.org/ https://at-ui.github.io/at-ui/ https://developer.microsoft.com/en-us/fabric https://vmware.github.io/clarity/ http://appnexus.github.io/lucid/ https://ng-lightning.github.io/ng-lightning/ https://blueprintjs.com/ http://www.jetbrains.…
You seem to trying to express a negative response to the fact that these companies create design frameworks. I'm interested as to why you feel this way?
Re: Base Web, Uber’s New Design System for Building Websites in React
#106Earlier quoted context omitted.
What you describe in the first paragraph is exactly what you can do with overrides as well. Again, it gives you access to any subcomponent in the component and you can replace it with your own component. Note, that you can replace a single layer and pass the "children" through OR "replace the whole branch" of subcomponents when NOT passing the children through. Also all overrides get various state props. For dnd-list…
You're out of your mind if you think that's an better way to compose components. How would you do something like this? { switch(listItem.type) { case 'foo': return {listItem.title} ; case 'bar': return {listItem.title} ; default: return {listItem.title} ; } })}>
Re: Base Web, Uber’s New Design System for Building Websites in React
#107I'm surprised that many huge React libraries don't expose its core Context for user to consume. Context is the most important concept in React. Actually, a library just need users to provide the right types of Context to be flexible. I'm tired of the "lock in" API, in which, it doesn't allow me to just get my context data into its arguments API. In this sense, you can consider Context as the local version of Redux.
Context IS NOT the most important concept in React. It's basically CSS cascading. Not something you want to introduce into your project so easily.
Context is fully opt in. A Context provider upstream will have no observable effect on your downstream components unless you have a component that explicitly chooses to consume _that particular context_.
I think you're thinking of the old Context API where everything merged onto the same shared context object and read from it implicitly. _That_ was a nightmare, hence why it was never recommended for general use, but the new API doesn't suffer from the same issues.
Re: Base Web, Uber’s New Design System for Building Websites in React
#108Earlier quoted context omitted.
What you describe in the first paragraph is exactly what you can do with overrides as well. Again, it gives you access to any subcomponent in the component and you can replace it with your own component. Note, that you can replace a single layer and pass the "children" through OR "replace the whole branch" of subcomponents when NOT passing the children through. Also all overrides get various state props. For dnd-list…
You're out of your mind if you think that's an better way to compose components. How would you do something like this? { switch(listItem.type) { case 'foo': return {listItem.title} ; case 'bar': return {listItem.title} ; default: return {listItem.title} ; } })}>
Re: Base Web, Uber’s New Design System for Building Websites in React
#109Earlier quoted context omitted.
You're out of your mind if you think that's an better way to compose components. How would you do something like this? { switch(listItem.type) { case 'foo': return {listItem.title} ; case 'bar': return {listItem.title} ; default: return {listItem.title} ; } })}>
https://gist.github.com/tajo/a84d96f248d454d1226e12bb07c8157...
Why do I have to specify "List" twice? And what sort of magic is "component" performing? What are children now? Do they not exist anymore? And what does "overrides" mean in this context? Passing children to a component is not an "override".
I think you're drunk on your own hype buddy. Maybe this all makes perfect sense to you, but it looks like garbage to me.
Re: Base Web, Uber’s New Design System for Building Websites in React
#110Finding a good React UX library is tough. None is ideal. Too heavy, too small, too slow, too dirty. Settled on ant.design for a while, not perfect but good enough.
Any other good candidates? This is something I really need to look into soon.