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).
ReactKomut 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>
ReactModül olarak içe aktarılmış örnek
import React from 'react';
console.log(React.version);
Açıkçası, Reactbir 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, Reactkapsü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 definedveUncaught 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').versionve 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
Elementsbölmeyi görüntülerBreak On… - subtree modifications
Sourcesbölmeyi görüntülerCall Stackalt bölmeyi inceleyinrendergiriş olmalı , buReactDOM.renderrender, yani. render'ı çağıran kodreact-domModü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-domSü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