最佳答案
我看到一些模式使用 ES6类的单例模式,我想知道为什么我要使用它们,而不是仅仅在文件底部实例化类并导出实例。这么做有什么不好的地方吗?例如:
ES6出口实例:
import Constants from '../constants';
class _API {
constructor() {
this.url = Constants.API_URL;
}
getCities() {
return fetch(this.url, { method: 'get' })
.then(response => response.json());
}
}
const API = new _API();
export default API;
用法:
import API from './services/api-service'
使用下列单例模式有何分别?有什么理由使用其中一个吗?实际上我更好奇的是,我给出的第一个例子是否有我没有意识到的问题。
单例模式
import Constants from '../constants';
let instance = null;
class API {
constructor() {
if(!instance){
instance = this;
}
this.url = Constants.API_URL;
return instance;
}
getCities() {
return fetch(this.url, { method: 'get' })
.then(response => response.json());
}
}
export default API;
用法:
import API from './services/api-service';
let api = new API()