账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    想把头部的几个import改成按需加载,请问怎么修改?
    25
    0
    import './style/main.css';
    
    import React from 'react';
    import DashLeft from './component/Left';
    import DashCenter from './component/Center';
    import Right from './component/Right';
    
    
    class DisplayScreen extends React.Component {
        constructor(props) {
            super(props);
            this.state = {
                data:'',
                currentComponent:null
            }
        }
        
        handleKeyDown(event){
            // 将停止事件的传播
            event.stopPropagation();
            // 阻止元素发生默认的行为
            event.preventDefault();
            //console.log('点击键盘事件');
        }
    
    
        promptWarm = () => {
            require.ensure(['../../components/warmDialog'], (require) => {
                const Message = require('../../components/warmDialog');
                this.setState({
                    currentComponent:<Message />
                })
            },'promptWarm')
        }
    
        componentDidMount() {
            let this_ = this;
            let date = '';
    
           if(ENV['displayScreen'].topic) {
               let dateWS = '';
                   Util.ws(ENV['displayScreen'].topic, ENV['displayScreen'].interval, returnData=> {
                   dateWS = returnData;
                   this.setState({data:dateWS})
               });
           }
           else
           {
    
               import('../../../../public/mockJson/kim-001/kim-001.json').then(data=>{
                //import('../../../../public/mockJson/kim-001/kim-001.json').then(data=>{
                    this.setState({data:data})
                });
    
           }
    
    
    
        }
        render() {
    
            return (
    
                <div id="appDash">
                    <span onClick={this.promptWarm} >
                        按需加载模块
                    </span>
                    {this.state.currentComponent}
                    {
                        this.state.data?
                            <div >
                                <DashLeft  data={this.state.data}/>
    
                                <DashCenter data={this.state.data}/>
    
                                <Right data={this.state.data}/>
                            </div>:''
                    }
                </div>
    
    
            );
        }
    }
    
    export default DisplayScreen;
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 隔壁姐姐 普通会员 1楼

      在Python中,可以使用importlib模块的load_module函数来按需加载模块。以下是一个简单的例子:

      ```python import importlib

      获取模块的导入路径

      module_path = "path/to/your/module.py"

      找到模块

      module = importlib.import_module(module_path)

      访问模块中的类

      class MyClass: pass

      获取类的实例

      my_instance = MyClass()

      打印实例的属性

      print(my_instance.x) ```

      在这个例子中,importlib.import_module函数会根据module_path路径找到对应的模块,并返回这个模块的__name__属性。如果这个属性是None,那么importlib.import_module会抛出一个ImportError异常。

      如果你想要按需加载模块,那么你可能需要为每个模块编写一个单独的文件,然后在导入这些文件时使用importlib.import_module函数。这将使得你的代码更清晰,更易于维护。

      另外,你也可以使用__name__属性来决定是否加载模块。例如:

      ```python import importlib

      获取模块的导入路径

      module_path = "path/to/your/module.py"

      找到模块

      module = importlib.import_module(module_path)

      如果模块的名称不是'your_module',那么就跳过它

      if module.name != "your_module": print(module) ```

      在这个例子中,如果module的名称不是'your_module',那么importlib.import_module函数会直接返回,而不是抛出异常。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部