Чи є спосіб дізнатися версію виконання React у браузері?
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.values().next()["value"]["version"]
Чи є спосіб дізнатися версію виконання React у браузері?
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.values().next()["value"]["version"]
Відповіді:
React.version
це те, що ви шукаєте.
Він, проте, без документації (наскільки я знаю), тому не може бути стабільною ознакою (тобто, хоч і малоймовірно, він може зникнути або змінитись у майбутніх випусках).
Приклад із React
імпортованим як сценарієм
const REACT_VERSION = React.version;
ReactDOM.render(
<div>React version: {REACT_VERSION}</div>,
document.getElementById('root')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>
Приклад із React
імпортованим як модулем
import React from 'react';
console.log(React.version);
Очевидно, що якщо ви імпортуєте React
як модуль, він не буде в глобальному масштабі. Наведений вище код призначений для комплектування з рештою програми, наприклад, використовуючи веб- пакет . Він практично ніколи не працюватиме, якщо його використовувати в консолі браузера (використовується голий вхід).
Цей другий підхід є рекомендованим. Більшість веб-сайтів будуть використовувати його. це створює-реагує-додаток робить це (використовує веб- пакет поза сценою). У цьому випадку React
він інкапсульований і, як правило, недоступний поза пакетом (наприклад, на консолі браузера).
version
властивість модуля.
Uncaught ReferenceError: require is not defined
іUncaught ReferenceError: React is not defined
З командного рядка:
npm view react version
npm view react-native version
Відкрийте інструменти Chrome Dev Tools або аналогічні програми та запустіть require('React').version
у консолі.
Це працює на веб-сайтах, таких як Facebook, а також з'ясувати, яку версію вони використовують.
ReferenceError: require is not defined
За допомогою встановленого React Devtools ви можете запустити це з консолі браузера:
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.forEach(r => console.log(`${r.rendererPackageName}: ${r.version}`))
Що виводить щось на кшталт:
react-dom: 16.12.0
Невідомо, що будь-які глобальні змінні ECMAScript були експортовані, а html / css не обов'язково вказує React. Тому подивіться у .js.
Спосіб 1: Подивіться в ECMAScript:
Номер версії експортується обома модулями react-dom та react, але ці імена часто видаляються шляхом скріплення, а версія прихована у контексті виконання, до якого неможливо отримати доступ. Розумна точка розриву може виявити значення безпосередньо, або ви можете здійснити пошук у ECMAScript:
Спосіб 2: Використовуйте точку розриву DOM:
Inspect Element
Elements
панелі інструментів для розробників Chrome відображається панельBreak On… - subtree modifications
Sources
панельCall Stack
піддіакноrender
записом, це такReactDOM.render
render
, тобто. код, який викликає візуалізаціюreact-dom
об'єкт експорту модуля
version: "15.6.2"
, тобто всі значення, експортовані користувачемreact-dom
Версія також вводиться в інструменти для розробки React, але, наскільки я знаю, ніде не відображається.
Відкрийте консоль, потім запустіть window.React.version
.
Це працювало для мене в Safari та Chrome під час оновлення з 0.12.2 до 16.2.0.
У файлі index.js просто замініть компонент програми на "React.version". Напр
ReactDOM.render(React.version, document.getElementById('root'));
Я перевірив це за допомогою React v16.8.1
Для програми, створеної за допомогою create-react-app, мені вдалося переглянути версію:
Додаток було розгорнуто без вихідної карти.
Спочатку встановіть інструменти реагування на реабілітацію, якщо вони не встановлені, а потім скористайтеся кодом запуску нижче на консолі браузера:
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.get(1).version