[英]Include external .js file in ReactJs web project
由於 external.js 文件 url 屬於客戶,所以我不能分享,我需要包含外部 js 文件,並從該外部 js 文件中調用 function。 我已經看到了一些解決方案,例如:
const script = document.createElement('script');
script.src = url; //(This is external js url)
script.async = true;
document.body.appendChild(script);
但這對我不起作用,或者我可能不知道它是如何工作的
假設這是外部示例代碼:
本地調用的示例代碼,如果我們手動下載文件並導入
let conn = demo("url", false)
conn.login("username", "myPassword")
包含在 reactjs 中后如何執行上述相同的調用
export default function demo (end, sec) {
const login = (user, password) => {
console.log(" sending login message")
}
const logout = async (user) => {
console.log(" sending logout message")
}
/*
* Expose these methods to the client
*/
return { login, logout }
}
您將需要 append 您的代碼片段在一個生命周期方法(如componentDidMount
)中,以便React可以在您安裝組件時安裝(或加載)它。 完成后,您可以調用自定義方法。
如果您使用 class 組件:
class MyComponent extends Component {
componentDidMount() {
const script = document.createElement('script');
script.src = url; //(This is external js url)
script.async = true;
document.body.appendChild(script);
}
render() {
return null;
}
}
或者,如果您使用帶有鈎子的功能組件
const MyComponent = () => {
useEffect(() => {
const script = document.createElement('script');
script.src = url; //(This is external js url)
script.async = true;
document.body.appendChild(script);
}, [])
}
要添加外部 js,有兩個選項
以下是腳本-
const addExternalJs = () => {
const script = document.createElement("script");
script.src = "/<path1>/<path2>/yourJSFile.js";
script.async = true;
script.onload = () => this.scriptLoaded();
document.body.appendChild(script);
}
基於功能的組件
useEffect(() => { addExternalJs(); }, []);
基於 Class 的組件
componentDidMount() { addExternalJs(); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.