komposable / komponent

An opinionated way of organizing front-end code in Ruby on Rails, based on components
http://komponent.io
MIT License
428 stars 31 forks source link

Add support for rendering with block instead of partial #163

Open jonmast opened 4 years ago

jonmast commented 4 years ago

Fixes https://github.com/komposable/komponent/issues/138

Add a render macro to the ComponentHelper, which takes a block that is used to render the component instead of using the partial. This is mainly useful for small components that will be rendered many times where the overhead of rendering the partial can be quite significant.

The issue hinted at using a render method for this, I chose not to go that route because it would override the built in method which seems problematic. Using a custom DSL for this makes it more explicit but has the downside of dealing with the various quirks of blocks as opposed to methods. Another option would be to use a differently named method (render_component?), but that has the downside of people accidentally using the name for a regular helper method. I'm open to any suggestion on a better API for it.