Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用字符串作为声明react组件的JS文件_Javascript_Reactjs - Fatal编程技术网

Javascript 使用字符串作为声明react组件的JS文件

Javascript 使用字符串作为声明react组件的JS文件,javascript,reactjs,Javascript,Reactjs,我使用的插件()允许我从imports编辑完整的JS文件,直到组件声明结束 此编辑器返回包含所有文件声明的字符串。在本例中,它将是: import React from "react"; import ReactDOM from "react-dom"; function App() { return ( <h1>Hello world</h1> ); } export default App; 从“React”导入React;

我使用的插件()允许我从
imports
编辑完整的JS文件,直到组件声明结束

此编辑器返回包含所有文件声明的字符串。在本例中,它将是:

import React from "react"; import ReactDOM from "react-dom"; function App() { return ( <h1>Hello world</h1> ); } export default App;
从“React”导入React;从“react dom”导入react dom;函数App(){return(Hello world);}导出默认应用程序;
是否有一种方法可以将此字符串用作代码。我的意思是,渲染它,或者像读取普通文件一样读取它

我已经尝试过了,但它只适用于是组件的字符串,而不适用于完整的JS文件。

尝试使用
eval()
将运行其输入(类型字符串),就像它是程序的一部分一样:

string = "import React from 'react'; import ReactDOM from 'react-dom'; function App() { return ( <h1>Hello world</h1> ); } export default App;";
eval(string);
string=“import React from'React';import ReactDOM from'React dom';function App(){return(Hello world);}export default App;”;
eval(字符串);

您会注意到,MDN文档包含一条警告,出于安全原因,请勿使用
eval
。这是因为它使用用户授予网页的所有权限执行代码,因此,如果有人可能修改了字符串,那么他们可以在客户端设备上运行他们想要的任何代码。不过,这只是某些用例的问题,可能不是您的问题。看见由于代码必须编译,因此速度也有点慢,但对于您的示例来说,这并不是很明显。

谢谢您的说明。我应该尽可能地保护它。而且eval看起来不是最安全的选择。