Skip to main content

Rx Visualizer - Animated playground for Rx Observables https://rxviz.com

Description

RxViz simply visualizes a given Observable. Your JavaScript code will be evaluated, and, if the last expression is an Observable, a nice animated visualization will appear.
You can also:
  • Control the speed of the animation by modifying the Time window input.
  • Copy the resulting SVG to include in your next Rx presentation.
  • Share the visualization with your friends.

Examples

Basic interval

Random error

Higher order Observable

Pause and resume

How does it work?

RxViz treats the evaluated Observable as a black box. We rely only on the fact that Observable emits values over time. RxViz doesn't rely on the internals of RxJS. This will allow us to visualize TC39 Observables in the future.
Technically, we subscribe to the given Observable, and, once a value is observed, we simply add it to the visualization. It's that simple!
How about higher order Observables? No different. Since a higher order Observable is simply an Observable whose values are Observables themselves, we just repeat the process recursively.
When an Observable value is seen, we subscribe to it. At this point, we create a new "branch" in the visualization.

Thanks

License

MIT

Note: Special thanks to Misha Moroshko

Disclaimer: The blog is created to share react components information to geek, curious ReactJS Developers.

Comments

Popular posts from this blog

react-bootstrap

Bootstrap 3 components built with React https://react-bootstrap.github.io/ Docs See the documentation with live editable examples. Related modules react-router-bootstrap – Integration with React Router React Bootstrap Extended - A version of React Bootstrap where each component has extra props that map to bootstrap's utility classes. For example, pullRight adds the class pull-right to a component. Local setup Install the dependencies with npm install Run tests npm test Run tests in watch mode npm run tdd Run the docs site in development mode with npm run docs. This will watch for file changes as you work. Simply refresh the page to see the updates. Build with npm run build Note: Special thanks to react-bootstrap Contact Me - mtscout6+react-bootstrap@gmail.com Disclaimer: The blog is created to share react components information to geek, curious ReactJS Developers.

React CSS components

Motivation Define React presentational components with CSS (or even SASS or Less if you like). The implementation is based on CSS modules. In fact React CSS Components is just a thin API on top of CSS modules. NOTE: The current implementation is based on Webpack but everything is ready to be ported onto other build systems (generic API is here just not yet documented). Raise an issue or better submit a PR if you have some ideas. Installation & Usage Install from npm: npm install react-css-components style-loader css-loader Configure in webpack.config.js: module.exports = { ... module: { loaders: [ { test: /\.react.css$/, loader: 'react-css-components', } ] } ... } Now you can author React components in Styles.react.css: Label { color: red; } Label:hover { color: white; } And consume them like regular React components: import {Label} from './styles.react.css' <Lab...

Declarative router component for React.

http://strml.viewdocs.io/react-router-component Project Overview Usage is as simple as just returning a configured router component from your component's render() method: <Locations> <Location path="/" handler={MainPage} /> <Location path="/users/:username" handler={UserPage} /> <Location path="/search/*" handler={SearchPage} /> <Location path={/\/product\/([0-9]*)/} handler={ProductPage} /> </Locations> Having routes defined as a part of your component hierarchy allows to dynamically reconfigure routing based on your application state. For example you can return a different set of allowed locations for anonymous and signed-in users. React router component can dispatch based on location.pathname or location.hash if browser doesn't support History API (see hash routing ). Props can be passed through the router by setting them directly on each , or to all possible routes via a childPro...