Last active
September 2, 2022 14:37
-
-
Save barneycarroll/50295a5f36a45dd5bc772f5236bf5bbb to your computer and use it in GitHub Desktop.
React components are so fucking stupid, it's unbelievable. 3 months with this library version 15 and the glaring stupidity of the API just keeps coming in waves. Fixing some of this stuff – just for the sake of internal consistency – would have been so simple. The number of hoops you're required to jump through for trivial shit. Ugh.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const mounted = new WeakSet() | |
export default (component, displayName = component.displayName || component.name || 'React.Component') => { | |
const host = { | |
[displayName] : class extends React.Component { | |
constructor(){ | |
this.state = {} | |
component.apply(this, arguments) | |
} | |
setState(partial, callback){ | |
this.state = Object.assign({}, this.state, typeof partial === 'function' ? partial(this.state, this.props) : partial) | |
callback() | |
} | |
componentDidMount(){ | |
this.setState = React.Component.prototype.setState | |
if(component.prototype.componentDidMount) | |
return component.prototype.componentDidMount.apply(this, arguments) | |
} | |
render(){ | |
if(!component.prototype.render) | |
return this.props.children || [] | |
const output = component.prototype.render.apply(this, arguments) | |
if(this.props.key && output.key === null) | |
output.key = key | |
} | |
} | |
} | |
return host[displayName]; | |
} |
Hello, dear people who once commented this gist.
This is a friendly reminder to touch grass and drink water.
Don't touch grass, it's full of allergens.
After working with React for 5 months my conclusion is:
React to the frontend is like PHP to the backend.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
React is the best evidence I have for the existence of evil