A Simple and flexible playground for live editing React code
$ npm install live-reacto
# or via yarn
$ yarn add live-reacto
import { LiveProvider, LiveEditor, LivePreview } from 'live-reacto';
// import your favorite prismjs theme
import "prismjs/themes/prism-dark.css";
const codeTest = `function App() {
const [count, setCount] = React.useState(0);
const onCount = () => setCount(count + 1);
return <div>{count} <button onClick={onCount}>Click me</button></div>
}
render(<App />)`;
// External component
const Hello = () => <h1>Hello world</h1>
<LiveProvider
language="jsx"
code={codeTest}
readOnly={false}
onlyHighlight={false}
bindings={{ Hello }} //-> bind component
>
<LiveEditor onChange={setCode} />
<LivePreview onTransform={setTransform} />
</LiveProvider>
- LiveProvider
Prop | Type | Description |
---|---|---|
language | string |
Language to be hightlighted (default: jsx ) |
code | string |
Some React code |
bindings | Object |
Add an external component or library. |
onlyHighlight | Boolean |
Disable LivePreview: works as Syntax highlighter. |
readOnly | Boolean |
Disable editing on the LiveEditor (Default: false). |
- LiveEditor
Prop | Type | Description |
---|---|---|
onChange | method |
returns live coding |
style | Object |
set css style for editor |
- LivePreview
Prop | Type | Description |
---|---|---|
onTransform | method |
returns the code transpiled by Babel |
- prismjs
- react
- react-dom
- react-error-boundary
- react-simple-code-editor
- @babel/standalone
- All pull requests are welcome.
MIT