热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

react引入html文件_react直接引用第三方js库(可直接用于浏览器html的js文件)...

三种方式:1.直接加载public目录下的index.html中直接在public下的html文件下加2.使用react-load-script插件动态引入npm安装

三种方式:

1. 直接加载public 目录下的index.html中

直接在public 下的html文件下 加

eceedd3860f349c0b6791e988fb9cc26.png

2. 使用 react-load-script 插件动态引入

npm 安装

npm install react-load-script

使用

import React from 'react';

import Script from 'react-load-script';

class DynamicScriptExample extends React.Component {

constructor(props) {

super(props);

this.state = {

scriptStatus: 'no'

}

}

handleScriptCreate() {

this.setState({ scriptLoaded: false })

}

handleScriptError() {

this.setState({ scriptError: true })

}

handleScriptLoad() {

this.setState({ scriptLoaded: true, scriptStatus: 'yes' })

}

render() {

return (

<>

onCreate&#61;{this.handleScriptCreate.bind(this)}

onError&#61;{this.handleScriptError.bind(this)}

onLoad&#61;{this.handleScriptLoad.bind(this)}

/>

动态脚本引入状态&#xff1a;{this.state.scriptStatus}

>

);

}

}

export default DynamicScriptExample;

3. 自己用脚本在 react DOM渲染前&#xff0c;强制插入。。

大概意思如下

export default function getAMap() {

var isLoaded &#61; true

return new Promise(function (resolve, reject) {

if (isLoaded) {

window.AMap.plugin([&#39;AMap.MouseTool&#39;, &#39;AMap.PolyEditor&#39;], () &#61;> {

resolve(window.AMap)

})

return

}

var script &#61; document.createElement(&#39;script&#39;)

script.type &#61; &#39;text/Javascript&#39;

script.async &#61; true

script.src &#61; &#39;http://webapi.amap.com/maps?v&#61;1.4.3&key&#61;key&callback&#61;$$$maptcinit&plugin&#61;AMap.MouseTool&#39;

// script.onload &#61; resolve

script.onerror &#61; reject

script.onload &#61; function () {

isLoaded &#61; true

resolve(window.AMap)

}

document.head.appendChild(script)

})

}



推荐阅读
  • 前端技术分享——利用Canvas绘制鼠标轨迹
    作为一名前端开发者,我已经积累了Vue、React、正则表达式、算法以及小程序等方面的技能,但Canvas一直是我的盲区。因此,我在2018年为自己设定了一个新的学习目标:掌握Canvas,特别是如何使用它来创建CSS3难以实现的动态效果。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
  • 本文详细介绍了如何在VSCode环境中配置Prettier工具以支持TypeScript项目,同时结合ESLint实现代码风格的一致性和自动化格式化。 ... [详细]
  • 使用 Babylon.js 实现地球模型与切片地图交互(第三部分)
    本文继续探讨在上一章节中构建的地球模型基础上,如何通过自定义的 `CameraEarthWheelControl` 类来实现更精细的地图缩放控制。我们将深入解析该类的实现细节,并展示其在实际项目中的应用。 ... [详细]
  • 本文介绍了如何在React应用中实现延迟加载以提高性能,以及如何利用自定义Hook和高阶组件(HOC)来增强组件功能。通过这些技术,开发者可以构建更加高效和可维护的应用。 ... [详细]
  • 华为云openEuler环境下的Web应用部署实践
    本文详细记录了在华为云openEuler系统上进行Web应用部署的具体步骤,包括配置yum源、安装Apache、MariaDB、PHP及其相关组件,并完成WordPress的安装与配置过程。 ... [详细]
  • 本文介绍了一个基本的同步Socket程序,演示了如何实现客户端与服务器之间的简单消息传递。此外,文章还概述了Socket的基本工作流程,并计划在未来探讨同步与异步Socket的区别。 ... [详细]
  • iOS 小组件开发指南
    本文详细介绍了iOS小部件(Widget)的开发流程,从环境搭建、证书配置到业务逻辑实现,提供了一系列实用的技术指导与代码示例。 ... [详细]
  • 本文介绍了如何通过创建自定义 XML 文件来修改 Android 中 Spinner 的项样式,包括颜色和大小的调整。 ... [详细]
  • 本文详细介绍了跨站脚本攻击(XSS)的基本概念、工作原理,并通过实际案例演示如何构建XSS漏洞的测试环境,以及探讨了XSS攻击的不同形式和防御策略。 ... [详细]
  • 使用jQuery与百度地图API实现地址转经纬度功能
    本文详细介绍了如何利用jQuery和百度地图API将地址转换为经纬度,包括申请API密钥、页面构建及核心代码实现。 ... [详细]
  • 在AngularJS中,有时需要在表单内包含某些控件,但又不希望这些控件导致表单变为脏状态。例如,当用户对表单进行修改后,表单的$dirty属性将变为true,触发保存对话框。然而,对于一些导航或辅助功能控件,我们可能并不希望它们触发这种行为。 ... [详细]
  • Gradle 是 Android Studio 中默认的构建工具,了解其基本配置对于开发效率的提升至关重要。本文将详细介绍如何在 Gradle 中定义和使用共享变量,以确保项目的一致性和可维护性。 ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
author-avatar
D大龙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有