ProppyJS

Functional props composition for UI components (React & Vue)

ProppyJS is tiny JavaScript library for composing functional props for your UI components. Currently supporting React.js, Vue.js, and Preact.

Also has integrations for Redux and RxJS.

Reviews
Discussion
You need to become a Contributor to join the discussion.
Mark Petty
Mark Petty@pettymark
This looks really nice. What are the key areas of differentiation from recompose?
Fahad Ibnay Heylaal
Fahad Ibnay HeylaalMaker@fahad19
@pettymark: thanks for the kind words, Mark! I have tried to explain the differences between Proppy and Recompose in the FAQ page here: https://proppyjs.com/docs/faq/ I will copy it here for convenience: - Not tied to any rendering libraries (like React or Vue.js) - Allows access to application-wide dependencies (like Redux store, config, etc) - Deals with only props generation - Doesn’t create a new component in tree per function Hope that helps!
Mark Petty
Mark Petty@pettymark
@fahad19 Point 2 and 4 makes this very compelling.
Jacqueline von Tesmar
Jacqueline von Tesmar@jacqvon · Community at Product Hunt ⚡️
Hey @fahad19, Can you tell us more about what you've built here and why you wanted to create it?
Fahad Ibnay Heylaal
Fahad Ibnay HeylaalMaker@fahad19
Hi @jacqvon! ProppyJS is a 1.5kB JavaScript library, that is: - Rendering library agnostic (works with React, Vue, Preact) - Abstracts props generation (objects that components receive to render themselves) - Integrates with other libraries (like Redux and RxJS) for data source easily The idea is to make developers focus on: - The behaviour of their UI Components, irrespective of their stack - The behaviour can be expressed as props only - The generated props can then be connected to any other rendering library Benefits: - Your components layer becomes simple and functional - All they do is receive props and render themselves (nothing else) - Easier unit testing since logic and presentation layer becomes separate - Interoperability with other libraries without locking you in Please let me know if you have any further questions :)