If came just for the link, just click here.
I've been coding for a few years and played with a few technologies. In this path, I've become a big fan of a Rails gem called simple_form. I'm also a fan of React. With these two in mind, I decided to build a library that had the simplicity of simple_form and the customization power of React. It's called
In short, this is how a form with
form-for looks like.
At first it may look like magic, but, although I think it's pretty cool, it's not exactly magical. Form-for uses a
schema to decide what component to display for each
Now that you've seen a broader perspective of how it works, let's go step by step and create a schema, binding our components and show you a live example to try out.
There are a couple of ways to achieve this with
form-for . For this post, I'll stick with the fancier one.
Let's create a user model. Our user will have a name, surname, email, phone number and access (user/guest). We'll annotate each field with
@field , so
form-for knows how to display it.
As you can see on the code above, each field has a type set to it; some even have a couple extra properties.
Now, we need to tell
form-for what components to render. I created a package for bootstrap components that makes your life veeery easy. It also aims to promote accessibility.
Now, let's put together the User, the bootstrap components and the
I created an extended version of the form we created. In this one the user has a list of todoItems as well, which adds a new degree of fun. The code is very straight forward, just like the one you saw above.
And if you want more sandbox examples, I have two others in my profile: https://codesandbox.io/u/pedsmoreira/sandboxes
Check out the repo, there a lot more instructions in there. If you like it, share with your friends and colleagues . I'm looking forward to hear your thoughts the comments below or GitHub PR/Issue.
If you don’t like comment too, lemme know how you think it could be better.
I'm Pedro Moreira and I build software for companies and startups. I'm a believer in contributing to the community through Open Source and I've created a couple of projects myself. One of them is GitShowcase, a platform that helps developers be awesome at showcasing their talents and find their dream job ❤