Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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
基于prop加载css/javascript文件_Javascript_Reactjs_React Ace - Fatal编程技术网

基于prop加载css/javascript文件

基于prop加载css/javascript文件,javascript,reactjs,react-ace,Javascript,Reactjs,React Ace,我正在处理一个reactjs文件,该文件使用reactace库。目前我的代码如下所示 import React, { Component } from 'react'; import 'brace/mode/html'; import 'brace/theme/monokai'; import AceEditor from 'react-ace'; class AceHTML extends Component { render () { return (

我正在处理一个reactjs文件,该文件使用
reactace
库。目前我的代码如下所示

import React, { Component } from 'react';
import 'brace/mode/html';
import 'brace/theme/monokai';
import AceEditor from 'react-ace';

class AceHTML extends Component {
    render () {
        return (
            <AceEditor
                mode="html"
                theme="monokai"
                name="Sample"
                showPrintMargin={false}
                wrapEnabled={true}
                value={this.state.value}
                editorProps={{
                    $blockScrolling: true
                }} />
        );
    }
}
import React,{Component}来自'React';
导入'brace/mode/html';
导入“brace/theme/monokai”;
从“react ace”导入AceEditor;
类扩展了HTML组件{
渲染(){
返回(
);
}
}
然而,我试图找出一种方法,使它更通用。因此,我可以说类似于
的内容,然后在组件中导入
brace/mode/javascript
,而不是
brace/mode/html

所以我的问题是:加载库而不是使用
import
的最佳方法是什么


PS:我特别指出我使用
react
的原因是因为我使用
create react app
创建应用程序。

导入libs不是react的工作。Webpack决定加载到捆绑文件的内容。如果你想使用任何基于道具的选项,你无论如何都需要导入它们


如果有大文件,并且您不想为应用程序的用户同时加载这两个文件,您可以通过AJAX请求获取它们。

导入libs不是React的工作。Webpack决定加载到捆绑文件的内容。如果你想使用任何基于道具的选项,你无论如何都需要导入它们


如果存在大文件,并且您不想为应用程序的用户同时加载这两个文件,则可以通过AJAX请求获取它们。

导入所有要使用的资产,您将能够根据需要进行更改

如果最初不想导入所有资产,可以使用动态导入,并在用户请求不同的编辑器配置时加载所需的块:

异步变更主题(主题){
等待导入(“大括号/主题/”+主题)
this.setState({theme});
}
异步变更模式(模式){
等待导入(“大括号/模式/”+模式)
this.setState({mode});
}
现场演示: (没有动态导入,因为它们不适用于stackblitz)

从“React”导入React;
从'react dom'导入{render};
从“大括号”导入大括号;
从“react ace”导入AceEditor;
导入'brace/mode/html';
导入'brace/mode/javascript';
导入“brace/theme/monokai”;
导入“brace/theme/github”;
函数onChange(newValue){
console.log('change',newValue);
}
//渲染编辑器
导出默认值({模式,主题})=>(
);

导入您想要使用的所有资产,您将能够随心所欲地进行更改

如果最初不想导入所有资产,可以使用动态导入,并在用户请求不同的编辑器配置时加载所需的块:

异步变更主题(主题){
等待导入(“大括号/主题/”+主题)
this.setState({theme});
}
异步变更模式(模式){
等待导入(“大括号/模式/”+模式)
this.setState({mode});
}
现场演示: (没有动态导入,因为它们不适用于stackblitz)

从“React”导入React;
从'react dom'导入{render};
从“大括号”导入大括号;
从“react ace”导入AceEditor;
导入'brace/mode/html';
导入'brace/mode/javascript';
导入“brace/theme/monokai”;
导入“brace/theme/github”;
函数onChange(newValue){
console.log('change',newValue);
}
//渲染编辑器
导出默认值({模式,主题})=>(
);

您应该使用导入延迟加载。它就像一个承诺。您可以在这里阅读:您应该使用导入延迟加载。它就像一个承诺。您可以在此处阅读: