React Native - 创建单例模式的最佳方式

问题描述 投票:0回答:3

我是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 形式传递多个变量。 注意:如果我走错方向,也请通知我。

reactjs react-native singleton
3个回答
21
投票

这是我对单例类的实现...

控制器.js

export default class Controller {
    static instance = Controller.instance ?? new Controller()

    helloWorld() {
        console.log("Hello World... \(^_^)/ !!")
    }
}

用途:

import Controller from 'Controller.js'

Controller.instance.helloWorld()

15
投票

你可以使用类似的东西

 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();

-8
投票

单例模式在 JS 生态系统中使用不多。您应该查看的是http://mobx.js.org。 MobX 是一个库,允许您创建可观察对象来存储应用程序的数据。您可以为每个您喜欢的域实例化一个商店,并对该商店进行编辑以更改应用程序状态。

© www.soinside.com 2019 - 2024. All rights reserved.