Answers:
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
作为模块导入,则不会在全局范围内。上面的代码旨在与您应用程序的其余部分捆绑在一起,例如使用webpack。如果在浏览器的控制台中使用,它将几乎永远无法工作(它使用的是裸露的输入)。
建议使用第二种方法。大多数网站都会使用它。create-react-app会执行此操作(它在后台使用webpack)。在这种情况下,它React
是封装的,通常在捆绑包之外(例如,在浏览器的控制台中)根本无法访问。
version
属性。
Uncaught ReferenceError: require is not defined
和Uncaught ReferenceError: React is not defined
打开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
窗格Break On… - subtree modifications
Sources
窗格Call Stack
子窗格render
条目,这是ReactDOM.render
render
,即。调用render的代码react-dom
模块的出口对象
version: "15.6.2"
。导出的所有值react-dom
该版本也被注入到React开发工具中,但据我所知没有显示在任何地方。
打开控制台,然后运行window.React.version
。
从0.12.2升级到16.2.0时,这在Safari和Chrome中对我有用。
在index.js文件中,只需将App组件替换为“ React.version”。例如
ReactDOM.render(React.version, document.getElementById('root'));
我已经用React v16.8.1进行了检查
对于使用create-react-app创建的应用,我设法看到了版本:
该应用已部署,没有源地图。
如果未安装,请先安装React开发工具,然后在浏览器控制台中使用以下运行代码:
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.get(1).version