0.0.8 • Published 4 years ago

@ts-live/react-previewer v0.0.8

Weekly downloads
-
License
-
Repository
-
Last release
4 years ago

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 namestring--

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

<PreviewerEditor/>

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

<Previewer/>

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

<PreviewerError/>

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