在做react项目时,有的像、时候需要引用其他原生js模块(也就是方法)
如果该js内是通过es6的export default导出的则在jsx中可以通过import引入

但如果该js只是一个方法也没有通过es6等导出必须通过script引入

例如我写了一个原生js或着在一个js中通过jquery来操作节点返回值也就是当点击页面元素时触发原生事件,则在jsx中不可通过import引入
引入该js有两种方法
1.如果在你的让react框架中的html中引入

2.也可在jsx中通过react的中的生命周期来引入
例如

   componentDidMount() {
        // 要引入的js文件地址
        let scriptSrc = ['/config/jquery.min.js', '/config/lib/codemirror.js']
        scriptSrc.map(res => {
            // 动态创建script标签
            var script = document.createElement('script');
            // 规则
            script.type = "text/javascript"
            // script中src只想路径
            script.src = res;
            // 追加到html的head头中
            document.head.appendChild(script);
        })
        var script = document.createElement('script')
        script.type = 'text/javascript'
        script.src = '/config/show-hint.js'
        // 追加到html中body的内
        document.body.append(script)
        var script = document.createElement('script');
        script.type = "text/javascript"
        script.src = '/config/formula.js';
        // 追加到html中body的内
        document.body.append(script);
    }

需要引入进去几个js,就需要动态创建几个script标签,不然后者会将前者覆盖
将js添加到头的话是因为
必须等到全部的js代码都下载解析和执行完成以后,才开始展现页面内容

引入的时候有个坑
在html中script引入js的话他的js地址为

http://http://localhost:端口号/你的js名称

也就是指浏览器找寻的js地址是你项目中public中的文件也就是静态资源下的文件,所以我们需要将js放入public(静态资源目录下)引入的话直接/你的路径

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐