Có cách nào để biết phiên bản thời gian chạy của React trong trình duyệt không?
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.values().next()["value"]["version"]
Có cách nào để biết phiên bản thời gian chạy của React trong trình duyệt không?
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.values().next()["value"]["version"]
Câu trả lời:
React.version
là những gì bạn đang tìm kiếm.
Tuy nhiên, nó không có giấy tờ (theo như tôi biết) vì vậy nó có thể không phải là một tính năng ổn định (tức là mặc dù không chắc, nó có thể biến mất hoặc thay đổi trong các bản phát hành trong tương lai).
Ví dụ với React
nhập dưới dạng tập lệnh
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>
Ví dụ với React
nhập dưới dạng mô-đun
import React from 'react';
console.log(React.version);
Rõ ràng, nếu bạn nhập React
dưới dạng mô-đun, nó sẽ không nằm trong phạm vi toàn cầu. Đoạn mã trên được thiết kế để được đi kèm với phần còn lại của ứng dụng của bạn, ví dụ như sử dụng webpack . Nó sẽ hầu như không bao giờ hoạt động nếu được sử dụng trong bảng điều khiển của trình duyệt (nó đang sử dụng đầu vào trống).
Cách tiếp cận thứ hai này là cách được khuyến nghị. Hầu hết các trang web sẽ sử dụng nó. create-react-app thực hiện điều này (nó sử dụng webpack đằng sau cảnh). Trong trường hợp này, React
được đóng gói và thường không thể truy cập được bên ngoài gói (ví dụ: trong bảng điều khiển của trình duyệt).
version
tính của mô-đun.
Uncaught ReferenceError: require is not defined
vàUncaught ReferenceError: React is not defined
Từ dòng lệnh:
npm view react version
npm view react-native version
Mở Chrome Dev Tools hoặc tương đương và chạy require('React').version
trong bảng điều khiển.
Điều đó cũng hoạt động trên các trang web như Facebook để tìm hiểu phiên bản họ đang sử dụng.
ReferenceError: require is not defined
Với React Devtools được cài đặt, bạn có thể chạy điều này từ bảng điều khiển của trình duyệt:
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.forEach(r => console.log(`${r.rendererPackageName}: ${r.version}`))
Kết quả đầu ra như sau:
react-dom: 16.12.0
Không chắc chắn rằng bất kỳ biến ECMAScript toàn cầu nào đã được xuất và html / css không nhất thiết chỉ ra React. Vì vậy, hãy tìm trong .js.
Phương pháp 1: Tìm trong ECMAScript:
Số phiên bản được xuất bởi cả hai mô-đun react-dom và react nhưng những tên đó thường bị loại bỏ bằng cách gói và phiên bản ẩn bên trong ngữ cảnh thực thi không thể truy cập được. Một điểm ngắt thông minh có thể tiết lộ trực tiếp giá trị hoặc bạn có thể tìm kiếm trong ECMAScript:
Phương pháp 2: Sử dụng điểm ngắt DOM:
Inspect Element
Elements
ngănBreak On… - subtree modifications
Sources
ngănCall Stack
phụrender
mục nhập, đây làReactDOM.render
render
, tức là. mã gọi kết xuấtreact-dom
đối tượng xuất khẩu mô-đun
version: "15.6.2"
, nghĩa là. tất cả các giá trị được xuất bởireact-dom
Phiên bản này cũng được đưa vào các công cụ dành cho nhà phát triển React, nhưng theo như tôi biết thì không được hiển thị ở đâu.
Mở bảng điều khiển, sau đó chạy window.React.version
.
Điều này đã làm việc cho tôi trong Safari và Chrome khi nâng cấp từ 0.12.2 lên 16.2.0.
Trong tệp index.js, chỉ cần thay thế Thành phần ứng dụng bằng "React.version". Ví dụ
ReactDOM.render(React.version, document.getElementById('root'));
Tôi đã kiểm tra điều này với React v16.8.1
Đối với một ứng dụng được tạo bằng create-react-app, tôi đã quản lý để xem phiên bản:
Ứng dụng đã được triển khai mà không có bản đồ nguồn.
Đầu tiên hãy cài đặt các công cụ dành cho nhà phát triển React nếu chưa được cài đặt và sau đó sử dụng đoạn mã chạy bên dưới trong bảng điều khiển trình duyệt:
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.get(1).version