smalljs$molSearch⌘ KDocsPlaygroundCompareEcosystemAboutEN
From React, Vue & SvelteGetting StartedIntroductionMental modelGetting StartedFrom TypeScript to view.treeProject StructureToolingEssentialsInstallationViewsState & ReactivityRoutingRenderingTestingDeploymentTroubleshootingDataData FetchingData SchemasGiper BazaMoreShowcaseFrom React, Vue & SvelteCookbookAdvancedPluginsModule metadataOfflineGhost viewsAboutFAQTeamReleasesAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

From React, Vue & Svelte

If you have built UIs with React, Vue, or Svelte, you already understand most of what $mol does — the names are just different. Those frameworks are excellent and popular for good reason; this page is a translation table, not a competition, to help you feel at home quickly.

Concept map

IdeaReactVueSvelte$molComponentfunction / classSFC (.vue).svelte file.view.tree + .view.tsLocal stateuseStateref / reactivelet x@ $mol_memDerived valueuseMemocomputed$: y =@ $mol_mem (reads other cells)Side effectuseEffectwatchEffect$: {}@ $mol_action (explicit, never automatic)Load data on mountuseEffect(fetch)onMounted(fetch)onMount(fetch)no hook: read the data in a property, the view requests it when it rendersPropspropspropsexport letbindings in view.treeEventonClick@clickon:clickclick? <=> handler?Two-way inputcontrolled inputv-modelbind:valuevalue? <=> field?Listitems.map()v-for{#each}keyed Row*Conditionalcond &&v-if{#if}assign null to removeShared stateRedux / ContextPinia / providestoresany object with @ $mol_memRoutingReact RouterVue RouterSvelteKit$mol_state_argStylingCSS-in-JSscoped <style><style>typed .view.css.ts

What tends to feel new

Solved by you vs. solved by the framework

The deeper difference is not the vocabulary above — it is who solves the recurring problems. In React, Vue, or Svelte most of them are patterns you re-implement in every component and break in your own way. In $mol they are properties of one mechanism, so the whole class of work disappears rather than getting a nicer API.Where the table above renames things, this is where $mol actually removes them.

Try the translation

The fastest way to internalize the mapping is to write a little of both: open the Playground, port a small component you know, and see how it lands. Or start from Getting Started.When a row in the table renames something you rely on, Mental model explains the idea behind the new name, and why the hook you are looking for is not there.
Edit this page on GitHubWas this helpful?YesNoPreviousShowcaseNextCookbook
On this pageConcept mapWhat tends to feel newSolved by you vs. solved by the frameworkTry the translation
Type to search the documentation.