recks
  • Intro to RecksJS
  • Install
  • API
    • Lifecycle
    • Events
    • Subcomponents
    • Lists
    • DOM references
  • Libraries
    • State
  • GitHub
  • Playground
Powered by GitBook
On this page
  • Updates
  • Automatic subscription
  • destroy$

Was this helpful?

  1. API

Lifecycle

Unlike React components, in Recks component function is executed only once in a given component lifetime:

function App() {
  console.log('🦄'); // <- only once per component!

  return <div>...</div>
}

This means that it's safe to create Subjects here to store component state, for example

function App() {
  // create local state Subject
  const state$ = new Subject();
  const onClick = () => state$.next(+1);

  return <div>
    ...
    <button onClick={ onClick }>btn</button>
    ...
  </div>
}

Updates

And only you control the output updates by placing your Observables where needed!

Automatic subscription

When you use an Observable anywhere in your component:

function App() {
  return <div>{ timer(0, 1000) }</div>
}

Recks will automatically subscribe to that stream when the Component is mounted and will unsubscribe from it when the Component is unmounted. You don't have to worry about that!

destroy$

Additionally, you can utilize lifecycle stream, that emits on Component unmount. It emits once and then completes.

function App(props, { destroy$ }) {
  // do custom sideeffects
  timer(0, 1000).pipe(
    takeUntil(destroy$)
  )
  .subscribe(t => {
    console.log('ping @ ' + t);
  });

  return <div>Hello!</div>
}
PreviousInstallNextEvents

Last updated 4 years ago

Was this helpful?

All incoming property updates are provided via props$ — an Observable, passed as a first argument to your component. See section for details.

Subcomponents