Unsupported Syntax
CurveaScript intentionally avoids framework-style template syntax and arbitrary JavaScript evaluation.
Event directives
Unsupported:
<button @click="openMenu">
Use normal JavaScript or a Curvea built-in helper.
Framework-style bound props
Unsupported:
<Component :title="title" />
Use a Curvea prop value:
<Component title="{{ title }}" />
or:
<Component title=title />
JSX expressions
Unsupported:
<Component title={title} />
JavaScript expressions in interpolation
Unsupported:
{{ title.toUpperCase() }}
{{ count + 1 }}
{{ items.map(...) }}
{{ user?.name }}
Normal interpolation accepts simple property paths only. A path such as {{ items.length }} is syntactically a simple path and can resolve when that property exists; Curvea does not execute JavaScript to produce it.
Runtime reactivity
CurveaScript does not provide:
- reactive template variables
- template state updates after load
- component hydration
- component lifecycle APIs
- client-side routing
MDX
Curvea's Markdown renderer does not execute CurveaScript/MDX components embedded in Markdown.
General-purpose bundling
Do not assume every npm package can be imported into browser code. Curvea has a limited JavaScript module graph rather than a full Vite/Webpack/Rollup-style bundler.