/component-party

Web component JS frameworks overview by their syntax and features

Primary LanguageJavaScriptMIT LicenseMIT

Component Party ๐ŸŽ‰

Web component JS frameworks quick overview by their syntax and features

Website: https://component-party.dev

๐Ÿค” Why ?

Many JS developers don't have a good overview of every existing JS framework with their own syntax and features. How do we solve this ? Developers love having framework overview by examples. It's a quick introduction before going deeper.

๐Ÿ”ฅ Progression

Svelte 100% progress
  • Reactivity
    • Declare state
    • Update state
    • Computed state
  • Templating
    • Minimal template
    • Styling
    • Loop
    • Event click
    • Dom ref
    • Conditional
  • Lifecycle
    • On mount
    • On unmount
  • Component composition
    • Props
    • Emit to parent
    • Slot
    • Slot fallback
    • Context
  • Form input
    • Input text
    • Checkbox
    • Radio
    • Select
  • Webapp features
    • Render app
    • Fetch data
    • Router link
    • Routing
React 100% progress
  • Reactivity
    • Declare state
    • Update state
    • Computed state
  • Templating
    • Minimal template
    • Styling
    • Loop
    • Event click
    • Dom ref
    • Conditional
  • Lifecycle
    • On mount
    • On unmount
  • Component composition
    • Props
    • Emit to parent
    • Slot
    • Slot fallback
    • Context
  • Form input
    • Input text
    • Checkbox
    • Radio
    • Select
  • Webapp features
    • Render app
    • Fetch data
    • Router link
    • Routing
Vue 3 96% progress
  • Reactivity
    • Declare state
    • Update state
    • Computed state
  • Templating
    • Minimal template
    • Styling
    • Loop
    • Event click
    • Dom ref
    • Conditional
  • Lifecycle
    • On mount
    • On unmount
  • Component composition
    • Props
    • Emit to parent
    • Slot
    • Slot fallback
    • Context
  • Form input
    • Input text
    • Checkbox
    • Radio
    • Select
  • Webapp features
    • Render app
    • Fetch data
    • Router link
    • Routing
SolidJS 92% progress
  • Reactivity
    • Declare state
    • Update state
    • Computed state
  • Templating
    • Minimal template
    • Styling
    • Loop
    • Event click
    • Dom ref
    • Conditional
  • Lifecycle
    • On mount
    • On unmount
  • Component composition
    • Props
    • Emit to parent
    • Slot
    • Slot fallback
    • Context
  • Form input
    • Input text
    • Checkbox
    • Radio
    • Select
  • Webapp features
    • Render app
    • Fetch data
    • Router link
    • Routing
Qwik 92% progress
  • Reactivity
    • Declare state
    • Update state
    • Computed state
  • Templating
    • Minimal template
    • Styling
    • Loop
    • Event click
    • Dom ref
    • Conditional
  • Lifecycle
    • On mount
    • On unmount
  • Component composition
    • Props
    • Emit to parent
    • Slot
    • Slot fallback
    • Context
  • Form input
    • Input text
    • Checkbox
    • Radio
    • Select
  • Webapp features
    • Render app
    • Fetch data
    • Router link
    • Routing
Angular 92% progress
  • Reactivity
    • Declare state
    • Update state
    • Computed state
  • Templating
    • Minimal template
    • Styling
    • Loop
    • Event click
    • Dom ref
    • Conditional
  • Lifecycle
    • On mount
    • On unmount
  • Component composition
    • Props
    • Emit to parent
    • Slot
    • Slot fallback
    • Context
  • Form input
    • Input text
    • Checkbox
    • Radio
    • Select
  • Webapp features
    • Render app
    • Fetch data
    • Router link
    • Routing
Lit 96% progress
  • Reactivity
    • Declare state
    • Update state
    • Computed state
  • Templating
    • Minimal template
    • Styling
    • Loop
    • Event click
    • Dom ref
    • Conditional
  • Lifecycle
    • On mount
    • On unmount
  • Component composition
    • Props
    • Emit to parent
    • Slot
    • Slot fallback
    • Context
  • Form input
    • Input text
    • Checkbox
    • Radio
    • Select
  • Webapp features
    • Render app
    • Fetch data
    • Router link
    • Routing
Vue 2 100% progress
  • Reactivity
    • Declare state
    • Update state
    • Computed state
  • Templating
    • Minimal template
    • Styling
    • Loop
    • Event click
    • Dom ref
    • Conditional
  • Lifecycle
    • On mount
    • On unmount
  • Component composition
    • Props
    • Emit to parent
    • Slot
    • Slot fallback
    • Context
  • Form input
    • Input text
    • Checkbox
    • Radio
    • Select
  • Webapp features
    • Render app
    • Fetch data
    • Router link
    • Routing
Ember 96% progress
  • Reactivity
    • Declare state
    • Update state
    • Computed state
  • Templating
    • Minimal template
    • Styling
    • Loop
    • Event click
    • Dom ref
    • Conditional
  • Lifecycle
    • On mount
    • On unmount
  • Component composition
    • Props
    • Emit to parent
    • Slot
    • Slot fallback
    • Context
  • Form input
    • Input text
    • Checkbox
    • Radio
    • Select
  • Webapp features
    • Render app
    • Fetch data
    • Router link
    • Routing
Alpine 96% progress
  • Reactivity
    • Declare state
    • Update state
    • Computed state
  • Templating
    • Minimal template
    • Styling
    • Loop
    • Event click
    • Dom ref
    • Conditional
  • Lifecycle
    • On mount
    • On unmount
  • Component composition
    • Props
    • Emit to parent
    • Slot
    • Slot fallback
    • Context
  • Form input
    • Input text
    • Checkbox
    • Radio
    • Select
  • Webapp features
    • Render app
    • Fetch data
    • Router link
    • Routing
Aurelia 1 92% progress
  • Reactivity
    • Declare state
    • Update state
    • Computed state
  • Templating
    • Minimal template
    • Styling
    • Loop
    • Event click
    • Dom ref
    • Conditional
  • Lifecycle
    • On mount
    • On unmount
  • Component composition
    • Props
    • Emit to parent
    • Slot
    • Slot fallback
    • Context
  • Form input
    • Input text
    • Checkbox
    • Radio
    • Select
  • Webapp features
    • Render app
    • Fetch data
    • Router link
    • Routing
Marko 100% progress
  • Reactivity
    • Declare state
    • Update state
    • Computed state
  • Templating
    • Minimal template
    • Styling
    • Loop
    • Event click
    • Dom ref
    • Conditional
  • Lifecycle
    • On mount
    • On unmount
  • Component composition
    • Props
    • Emit to parent
    • Slot
    • Slot fallback
    • Context
  • Form input
    • Input text
    • Checkbox
    • Radio
    • Select
  • Webapp features
    • Render app
    • Fetch data
    • Router link
    • Routing

๐Ÿค Contributing

This site is built with Vite and Svelte. Site content is written in Markdown format located in content. For simple edits, you can directly edit the file on GitHub and generate a Pull Request.

For local development, pnpm is preferred as package manager:

pnpm i
pnpm run dev

This project requires Node.js to be v16.0.0 or higher.

Add a framework

  1. Fork the project and create a new branch
  2. Add the new framework SVG logo in public/framework
  3. Install the ESLint plugin associated to the framework
  4. In frameworks.mjs, add a new entry with SVG link and ESLint configuration
  5. If the framework needs a language syntax highlight, add it to the call to getHighlighterโ€™s langs argument in build/lib/generateContent.js
  6. To make a playground link:
    1. Add a create${FRAMEWORK}Playground.js file in build/lib/playground.
    2. That file should export a function that returns an object with a fromContentByFilename method that accepts an object of filepath keys and file content values, then returns an absolute URL to a frameworkโ€™s online REPL with those files loaded.
    3. Register its export in build/lib/playground/index.js

๐Ÿง‘โ€๐Ÿ’ป Contributors

This project exists thanks to all the people who contribute. [Contribute]. Contributors

โš–๏ธ License

MIT. Made with ๐Ÿ’–