Michał Moroz

Bringing back reactivity in "reactive" frontend

A light switch is 'off' but the bulb is 'on'. This talk explores how derived state prevents such contradictions and makes your application predictable.

Bringing back reactivity in "reactive" frontend
#1about 2 minutes

Defining the core principle of reactive programming

Reactive libraries exist primarily to reduce the number of possible invalid states within a system.

#2about 4 minutes

Using derived state to eliminate invalid states

A lamp example demonstrates how derived state reduces four possible states, including two invalid ones, down to two valid states.

#3about 2 minutes

How popular JavaScript libraries implement reactivity

Frameworks like React, Vue, RxJS, and Solid all provide primitives for both mutable state and derived state.

#4about 1 minute

Tip 1: Transform imperative updates into derived state

Refactor imperative UI updates, such as setting a title, to be a derived state based on the application's core data.

#5about 4 minutes

Tip 2: Decouple state by keeping items independent

Avoid using multiple boolean flags for related UI visibility, as this creates coupled state and potential invalid combinations.

#6about 3 minutes

Tip 3: Place state in the component hierarchy

Decide whether to use global state for coupled features or local state for isolated components to manage complexity effectively.

#7about 8 minutes

A four-step process for refactoring reactive code

Follow a structured process of mapping function calls, reverse-mapping state, and incrementally creating derived state to untangle complex code.

#8about 3 minutes

The benefits of reducing invalid application states

Refactoring to a reactive model with derived state leads to clearer code boundaries, easier conceptualization, and a more predictable application.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.