Tarayıcıda React'in çalışma zamanı sürümünü öğrenmenin bir yolu var mı?
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.values().next()["value"]["version"]
Tarayıcıda React'in çalışma zamanı sürümünü öğrenmenin bir yolu var mı?
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.values().next()["value"]["version"]
Yanıtlar:
React.version
aradığınız şey.
Yine de belgelenmemiş (bildiğim kadarıyla), bu nedenle kararlı bir özellik olmayabilir (yani, pek olası olmasa da, kaybolabilir veya gelecekteki sürümlerde değişebilir).
React
Komut dosyası olarak içe aktarılmış örnek
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
Modül olarak içe aktarılmış örnek
import React from 'react';
console.log(React.version);
Açıkçası, React
bir modül olarak içe aktarırsanız , bu genel kapsamda olmayacaktır. Yukarıdaki kodun, uygulamanızın geri kalanıyla birlikte paketlenmesi amaçlanmıştır, örneğin web paketi kullanılarak . Bir tarayıcının konsolunda kullanılırsa neredeyse hiç çalışmaz (çıplak giriş kullanır).
Bu ikinci yaklaşım tavsiye edilen yaklaşımdır. Çoğu web sitesi bunu kullanacaktır. create-react-app bunu yapar ( sahnenin arkasında webpack kullanıyor ). Bu durumda, React
kapsüllenir ve genellikle paketin dışından erişilemez (örneğin bir tarayıcı konsolunda).
version
özelliğini almanız gerekir .
Uncaught ReferenceError: require is not defined
veUncaught ReferenceError: React is not defined
Komut satırından:
npm view react version
npm view react-native version
Chrome Dev Tools veya eşdeğerini açın require('React').version
ve konsolda çalıştırın .
Bu, Facebook gibi web sitelerinde de hangi sürümü kullandıklarını öğrenmek için çalışır.
ReferenceError: require is not defined
React Devtools kurulduğunda, bunu tarayıcı konsolundan çalıştırabilirsiniz:
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.forEach(r => console.log(`${r.rendererPackageName}: ${r.version}`))
Aşağıdakilere benzer bir çıktı veren:
react-dom: 16.12.0
Herhangi bir global ECMAScript değişkeninin dışa aktarıldığı kesin değildir ve html / css mutlaka React'i göstermez. Yani .js'ye bakın.
Yöntem 1: ECMAScript'e bakın:
Sürüm numarası her iki modül react-dom ve react tarafından dışa aktarılır , ancak bu adlar genellikle paketlenerek kaldırılır ve sürüm erişilemeyen bir yürütme bağlamı içinde gizlenir. Akıllı bir kırılma noktası, değeri doğrudan ortaya çıkarabilir veya ECMAScript'te arama yapabilirsiniz:
Yöntem 2: DOM kesme noktası kullanın:
Inspect Element
Elements
bölmeyi görüntülerBreak On… - subtree modifications
Sources
bölmeyi görüntülerCall Stack
alt bölmeyi inceleyinrender
giriş olmalı , buReactDOM.render
render
, yani. render'ı çağıran kodreact-dom
Modül ihracat nesne
version: "15.6.2"
Örn. İçeren bir araç ipucu penceresi görüntülenir . tarafından ihraç edilen tüm değerlerreact-dom
Sürüm ayrıca React geliştirme araçlarına da eklenmiş, ancak bildiğim kadarıyla hiçbir yerde gösterilmiyor.
Konsolu açın, ardından çalıştırın window.React.version
.
Bu, 0.12.2'den 16.2.0'a yükseltme yaparken Safari ve Chrome'da benim için çalıştı.
İndex.js dosyasında, Uygulama bileşenini "React.version" ile değiştirmeniz yeterlidir . Örneğin
ReactDOM.render(React.version, document.getElementById('root'));
Bunu React v16.8.1 ile kontrol ettim
Create-react-app ile oluşturulan bir uygulama için sürümünü görmeyi başardım:
Uygulama, kaynak haritası olmadan dağıtıldı.
Öncelikle kurulu değilse React geliştirme araçlarını yükleyin ve ardından tarayıcı konsolunda aşağıdaki kodu çalıştırın:
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.get(1).version