Skip to content

Files

Latest commit

author
dcx
Apr 12, 2020
a6cab83 · Apr 12, 2020

History

History
This branch is up to date with fucora/ts-live:master.

react-previewer

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Apr 2, 2020
Mar 27, 2020
Mar 24, 2020
Mar 24, 2020
Apr 1, 2020
Apr 1, 2020
Apr 12, 2020

react-previewer

typescript 编辑器,可以实时编译、运行代码并生成预览效果。

Usage

安装:

npm i @ts-live/react-previewer

Demo

使用时需要先手动引入一下 monaco-editorworker,该 worker 位于 ts-editor 包下的 workers 目录,加载 worker 时如果碰到跨域问题,可参考monaco 文档

// ./index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Previewer Demo</title>
    <script>
        window.MonacoEnvironment = {
            // getWorkerUrl 返回的是 worker 的路径,monaco 会通过该路径去加载 worker,所以要确保路径正确。
            getWorkerUrl: function (moduleId, label) {
                if (label === "json") {
                    return "./worker/json.worker.js";
                }
                if (label === "css") {
                    return "./worker/css.worker.js";
                }
                if (label === "html") {
                    return "./worker/html.worker.js";
                }
                if (label === "typescript" || label === "javascript") {
                    return "./worker/ts.worker.js";
                }
                return "./worker/editor.worker.js";
            }
        };
    </script>
</head>

<body>
  <div id="root"></div>
</body>

</html>
import {
    PreviewerProvider,
    Previewer,
    PreviewerEditor,
    PreviewerError
} from '@ts-live/react-previewer';

<PreviewerProvider
    code={'<strong>Hello World!</strong>'}
>
    <Previewer />
    <PreviewerEditor
        autoHeight
        width="600px"
    />
    <PreviewerError />
</PreviewerProvider>

更多使用 demo 可参考 ./examples

API

<PreviewerProvider/>

参数 说明 类型 默认值
className 自定义class name string --

PreviewerProvider 的 props 还支持 @ts-live/ts-editor 包的 IEditorOptions 所有选项

<PreviewerEditor/>

参数 说明 类型 默认值
width 编辑器宽度 string --
height 编辑器高度 string 0
autoHeight 编辑器是否自适应内容高度 boolean false
minHeight autoHeight 为 true 时,编辑器最小高度 number 0
maxHeight autoHeight 为 true 时,编辑器最大高度,为 0 时表示不限制高度 number 0
getEditor 获取 editor 实例 (editor: Editor) => void --
className 自定义class name string --

<Previewer/>

参数 说明 类型 默认值
renderError 当有错误时,自定义渲染 error (error: Error null) => JSX.Element
className 自定义class name string --

<PreviewerError/>

参数 说明 类型 默认值
className 自定义class name string --