Riot brings custom components to all modern browsers. It is designed to offer you everything you wished native the web components API looked like.
Performant and predictable
- Absolutely the smallest possible amount of DOM updates and reflows.
- Fast expressions bindings instead of virtual DOM memory performance issues and drawbacks.
- One way data flow: updates and unmounts are propagated downwards from parent to children.
- No “magic” or “smart” reactive properties or hooks
- Expressions are pre-compiled and cached for high performance.
- Lifecycle methods for more control.
Close to standards
- No proprietary event system.
- The rendered DOM can be freely manipulated with other tools.
- No extra HTML root elements,
data-attributes or fancy custom attributes.
- No new syntax to learn.
- Plays well with any frontend framework.
Use your dearest language and tools
- Create components with CoffeeScript, Jade, LiveScript, Typescript, ES6 or any pre-processor you want.
- Build with @riotjs/cli, webpack, Rollup, parcel, Browserify.
- Test with however you like, you can load your riot tags directly in node
Powerful and modular ecosystem
The Riot.js ecosystem is completely modular, it’s designed to let you pick only the stuff you really need:
- @riotjs/ssr – Super simple server-side rendering
- @riotjs/hydrate – Hydration strategy for your SPA
- @riotjs/hot-reload – Live reload plugin
- @riotjs/compiler – Advanced tags compiler
- @riotjs/parser – HTML parser
- @riotjs/dom-bindings – Expressions based template engine
- @riotjs/now – https://zeit.co/ now integration
- @riotjs/custom-elements – native custom elements implementation
Riot 4.6.5 released.
- Update improve rendering performance of the text expressions