javascript - 如何在 React 应用程序中包含纯 JavaScript?

标签 javascript reactjs

我正在尝试创建一个包含 p5 草图的 React 页面,但这样做似乎需要我重写通常在浏览器中运行的标准 JavaScript,以使其作为 React 组件工作。

例如,我想让 React 将此代码提供给客户端:

function setup() {
    createCanvas(600, 600);
}

function draw() {
    background(0);
}

但是我找不到一种方法让 React 给客户端一个 JavaScript 文件。相反,我必须创建一个像这样的组件:

export default function(p: p5) {

    p.setup = function setup() {
        p.createCanvas(600, 600);
    };

    p.draw = function draw() {
        p.background(0);
    };

}

这可能看起来微不足道,但如果我和我的团队可以包含我们已经编写的代码,这些代码可以在 React 之外工作,而无需重写所有内容,会让事情变得更容易。

解决问题的一种方法是将文件放在 React 的公共(public)目录中,并与 index.html 一起静态提供它,但我更愿意只在客户端需要时才提供文件,而不是仅仅提供一次处理每个文件。如果我可以让一个组件导入 JavaScript 文件并像处理图像一样发送它,那么这正是我正在寻找的。

编辑:抱歉,为了澄清我的意思,Node 是实际提供服务的东西,我想要的是当 React 渲染页面时,它也会运行 JavaScript 代码,就好像它是在 <script> 中编写的一样HTML 页面中的标记。

最佳答案

我已经解决了。本质上,我将想要运行的所有代码放在像 sketch.js 这样的文件中,但将其包围在导出的函数中:

export default function Sketch() {
    function setup() {
        createCanvas(600, 600);
    }

    function draw() {
        background(0);
    }
}

然后在 app.js 中你可以执行如下操作:

import Sketch from './sketch';
Sketch();

这将在客户端浏览器中运行该函数中的所有代码。

关于javascript - 如何在 React 应用程序中包含纯 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58753228/

相关文章:

javascript - react native 类型错误 : Cannot read property 'createClient' of undefined

javascript - 如何在我们的[跨域问题]之外的另一个域上加载XML文件

javascript - Telerik RadDropDownTree OnEntryAdded 如果指定 OnClientEntryAdded 则不会触发

javascript - 在间隔函数中 react setAttribute

reactjs - 删除事件监听器手动 react 钩子(Hook)

javascript - 在构造函数中中断 React 生命周期

javascript - 递归函数调用返回

javascript - 每个和字符串索引

reactjs - Jest 和 Enzyme 中的 "Cannot read property includes of undefined"错误

javascript - 根据对象属性更新对象数组中的项目