Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@clds/compound-components

Package Overview
Dependencies
Maintainers
0
Versions
79
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@clds/compound-components

---

  • 0.50.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

@clds/compound-components


npm version

@cld/compound-components

Documentation of the Cloudinary Compound components architecture implementation details.

Lists

Low coupling architecture

Here you can learn about architecture for compound components which is used primarily by list-based components.

Compound components

Compound components is a pattern when one parent component composes other components in a subtree and establishes communication between them.

Many existing solutions require passing exact array of children as parent children prop so list has access to children props and doesn't need to communicate with components after they are mounted. This kind of composition highly couples children to theirs parent. It is very limited as finally rendered items should have the same structure as defined in children prop. You can't wrap fragment of list items inside reusable component or you cant wrap items by other dom elements such as div. Also you can't use routing mechanism as it changes the rendered structure which becomes different than specified in parent.children prop.

Low coupling

Low coupling means here that children components can be structured in any way that React allows: list items can be wrapped inside other reusable components, routes and they should communicate well regardless how they are nested inside parent component.

Low coupling also means that when implementing particular UI component such as list, dropdown menu, select field, inline menu etc, you can freely reuse various small specialized modules (components, hooks) without a need of refactoring any of them because they have pretty defined small responsibility and they are designed to work together following react unidirectional data flow pattern. This means that you can use hooks for parent component and for children component that you actually need. They only things they communicate is React context.

Primary goal

Primary goal of this architecture is to provide high reuse and extendability of simple components and hooks without a need to limit power of component architecture. We can say this approach promotes Composition over configuration.

Versioning

This library follows Semantic Versioning.

License

See LICENSE

FAQs

Package last updated on 01 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc