Как отслеживать значения локальных переменных в Javascript? - PullRequest
1 голос
/ 08 февраля 2020

Я искал способ отследить значение локальных и глобальных переменных программы в Javascript. РЕДАКТИРОВАТЬ / дополнительная информация: Эта программа уже была написана, поэтому я задним числом добавляю это отслеживание состояния. Мне нужно иметь доступ к текущему или последнему значению любой переменной в программе (даже в случай, когда функция, содержащая его, завершила работу). Мой текущий план заключается в следующем:

  1. Создать AST и добавить все переменные из него в глобальный объект "обработчик состояний". Каждая переменная получит уникальное имя записи в объекте, так что переменная x в функции foo() будет отличаться от другой переменной x в функции bar().

  2. Каждый раз, когда переменная обновляется во всей программе, обновляйте также значение переменной в объекте поддержки состояния.

Я буду вставлять код в файл JS, который Я пытаюсь отслеживать значения для того, чтобы сделать это.

Я буду следить за ссылочными назначениями и распространять изменения во всех затронутых переменных, когда это применимо. Например, когда a обновляется ниже, b также должно обновляться.

var a = 'foo'
var b = a
a = 'bar' 

Имеет ли этот подход смысл? Существуют ли другие технические соображения, на которые я должен обратить особое внимание? Есть ли библиотеки, которые уже реализуют эту функцию?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2020

Как отметил @Ahmed, вы должны использовать стороннюю библиотеку для управления состоянием, например:

Redux: Redux Docs , если у вас большое приложение

MobX: MobX Docs в случае, если ваше приложение маленькое или среднее, и его также легко изучить, чем Redux

, и вы можете использовать React Context , если вы этого не сделаете хочу использовать новую библиотеку

0 голосов
/ 08 февраля 2020

Вам потребуется использовать инструмент управления состоянием, такой как Redux, но если ваше приложение не так уж велико, вы можете использовать библиотеку rx js для управления потоками данных в вашем приложении, этот пост поможет https://medium.com/@mohandere / rx js -5-in-5-minutes-1c3b4ed0d8 cc

Если вам не нужно использовать какие-либо библиотеки, просто внедрите шаблон наблюдателя, как в этом посте https://jsmanifest.com/observer-pattern-in-javascript

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...