我是react-native编码的新手,但在objective-c和swift编码方面有经验,并且希望在react-native中使用单例模式。 我试图从其他 StackOverflow 答案中找到解决方案,但大多数都只创建单例函数,如下代码:
var Singleton = (function () {
var instance;
function createInstance() {
var object = new Object("I am the instance");
return object;
}
return {
getInstance: function () {
if (!instance) {
instance = createInstance();
}
return instance;
}
};
})();
function run() {
var instance1 = Singleton.getInstance();
var instance2 = Singleton.getInstance();
alert("Same instance? " + (instance1 === instance2));
}
正如我们在上面的代码中看到的,我们正在创建单例函数而不是类。 请告诉我是否有任何方法可以创建单例类并在该类中以 Objective-C 或 Swift 形式传递多个变量。 注意:如果我走错方向,也请通知我。
这是我对单例类的实现...
控制器.js
export default class Controller {
static instance = Controller.instance ?? new Controller()
helloWorld() {
console.log("Hello World... \(^_^)/ !!")
}
}
用途:
import Controller from 'Controller.js'
Controller.instance.helloWorld()
你可以使用类似的东西
class SingletonClass {
static instance = null;
static createInstance() {
var object = new SingletonClass();
return object;
}
static getInstance () {
if (!SingletonClass.instance) {
SingletonClass.instance = SingletonClass.createInstance();
}
return SingletonClass.instance;
}
}
var instance1 = SingletonClass.getInstance();
var instance2 = SingletonClass.getInstance();
单例模式在 JS 生态系统中使用不多。您应该查看的是http://mobx.js.org。 MobX 是一个库,允许您创建可观察对象来存储应用程序的数据。您可以为每个您喜欢的域实例化一个商店,并对该商店进行编辑以更改应用程序状态。