aboutsummaryrefslogtreecommitdiff
path: root/docs/runtime/jsx.md
blob: 1ace6e3672294e87f61fa3b6e5c9f8eef7089da4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Bun supports `.jsx` and `.tsx` files out of the box. Bun's internal transpiler converts JSX syntax into vanilla JavaScript before execution.

```tsx#react.tsx
function Component(props: {message: string}) {
  return (
    <body>
      <h1 style={{color: 'red'}}>{props.message}</h1>
    </body>
  );
}

console.log(<Component message="Hello world!" />);
```

Bun implements special logging for JSX to make debugging easier.

```bash
$ bun run react.tsx
<Component message="Hello world!" />
```

<!-- ### Prop punning

The Bun runtime also supports "prop punning" for JSX. This is a shorthand syntax useful for assigning a variable to a prop with the same name.

```tsx
function Div(props: {className: string;}) {
  const {className} = props;

  // without punning
  return <div className={className} />;
  // with punning
  return <div {className} />;
}
``` -->
'deletions'>-2/+5 2022-03-02Update global.zigGravatar Jarred Sumner 1-0/+17 2022-03-02Update fs.zigGravatar Jarred Sumner 1-0/+3 2022-03-02[bun run] Set more environment variablesGravatar Jarred Sumner 2-0/+55 2022-03-02clean up error message when CLI flag is invalidGravatar Jarred Sumner 1-1/+4 2022-03-02add `bun pm cache` and `bun pm cache rm` commandsGravatar Jarred Sumner 1-0/+20 2022-03-01[bun.js] `ResolveError.prototype.toString()` `BuildError.prototype.toString()`Gravatar Jarred Sumner 1-2/+94 2022-03-01add `allowBunRuntime` and `autoImportJSX` flags to Bun.TranspilerGravatar Jarred Sumner 1-1/+32 2022-03-01cleanup code that checks if it should send an HTTP bodyGravatar Jarred Sumner 2-6/+18 2022-03-01[JS Parser] Fix bug with `super` from adding class static blocksGravatar Jarred Sumner 1-1/+12 2022-03-01Update bundler.zigGravatar Jarred Sumner 1-1/+5 2022-03-01Remove unused boolGravatar Jarred Sumner 1-3/+0 2022-03-01[bun.js] Allow disabling runtime imports so bun can build for nodeGravatar Jarred Sumner 3-5/+11 2022-03-01[JS Parser] Make auto importing JSX a flag so the API is easierGravatar Jarred Sumner 1-295/+297 2022-03-01cleanupGravatar Jarred Sumner 1-2/+2 2022-03-01Update javascript.zigGravatar Jarred Sumner 1-50/+0 2022-03-01[bun.js] shim async fsGravatar Jarred Sumner 2-36/+226 2022-03-01[bun.js] Implement `setTimeout`, `setInterval`, `clearTimeout`, `clearInterval`Gravatar Jarred Sumner 11-41/+295 2022-02-27Update transpiler.test.jsGravatar Jarred Sumner 1-0/+8 2022-02-27[TS] Make `export {type foo}` output consistent with TS parserGravatar Jarred Sumner 1-3/+45 2022-02-27WASMGravatar Jarred Sumner 83-690/+10789