constructor函式和類關係學習
阿新 • • 發佈:2018-11-27
文章參考
問題描述
利用react-load-script
載入第三方的JS檔案,我擔心是否會重複載入,驗證了程式碼之後發現不會。因此,我產生了好奇,使用webpack打包,每次import不都是不同的物件嗎,那麼不同的物件之間怎麼記錄各自的內容,讓彼此知道呢?
解決思路
查看了原始碼之後,是將資料掛載到類
中,就是所謂的靜態資源
,不同的例項實際上是都能夠訪問的
class寫法實現例項的訪問
import React from 'react';
export default class Script extends React.Component {
// A dictionary mapping script URL to a boolean value indicating if the script
// has already been loaded.
static loadedScripts = {};
componentDidMount() {
// this.constructor 就相當於 Script這個類
// this.constructor.loadedScripts 等價於 Script.loadedScripts
if (this.constructor.loadedScripts[ url]) {
onLoad();
return;
}
}
}