我想创建一个小而最小的代码编辑器(在JavaScript中)来使用React.js。我从头开始创建代码编辑器。出于教育原因,我需要代码编辑器,仅用于免费课程网站中的简单在线练习。
x1c 0d1x的数据
我想得到this like w3schools.我创建了一个代码编辑器,读取HTML,CSS和JS代码,但当然它不读取React代码.我想尝试查看一个简单的预览只 Hello World!(没有import,function等).如何让我的代码编辑器读取React代码?我知道,我可以使用现成的代码编辑器,但我想尝试从头开始创建一个考虑到我只需要他们在一个免费的课程网站教学练习。
联系我们
<div id="htmlCode" contenteditable="true" oninput="showPreview()">import React from "react";
import ReactDOM from "react-dom/client";
function Hello(props) {
return <h1>Hello World!</h1>;
}
const container = document.getElementById('root');
const root = ReactDOM.createRoot(container);
root.render(<Hello />);
</div>
<h3>PREVIEW</h3>
<div class="preview-area">
<iframe id="preview-window"></iframe>
</div>
字符串
中文(简体)
#htmlCode {
width: 456px;
height: 165px;
padding: 10px;
background-color: #444;
color: white;
font-size: 14px;
font-family: monospace;
white-space: pre;
}
型
js
//PREVIEW
function showPreview() {
var htmlCode = document.getElementById("htmlCode").innerText;
var cssCode =
"<style>" + document.getElementById("cssCode").value + "</style>";
var jsCode =
"<scri" + "pt>" + document.getElementById("jsCode").value + "</scri" + "pt>";
var frame = document.getElementById("preview-window").contentWindow.document;
document.getElementById("preview-window").srcdoc = htmlCode;
frame.open();
frame.write(htmlCode + cssCode + jsCode);
frame.write(editor);
frame.close();
}
showPreview()
型
1条答案
按热度按时间jexiocij1#
我们需要使用像Babel这样的编译器来将JSX和TSX组件渲染成JS。
在本例中,我们可以使用babel standalone。
我用编辑器中的react代码创建了一个与html页面等效的变量,并将其加载到iframe中。
"我需要做几件事才能成功“
1.在react代码周围使用了
<script data-plugins='transform-modules-umd' type='text/babel'>
1.将导入头替换为等效的CDN,如react和react-dom。
要运行代码,只需复制代码,将其粘贴到文本编辑器中,并将其保存为.html,然后在任何最近的浏览器中打开。
产品代码:
字符串
这可以用作构建复杂用例的构建块。
似乎我不能预览这里的代码,因为一些安全警告(可能是iframe),所以附上一个截图. x1c 0d1x