ReactDOM
These docs are old and won’t be updated. Go to react.dev for the new React docs.
These new documentation pages teach modern React:
The react-dom
package provides DOM-specific methods that can be used at the top level of your app and as an escape hatch to get outside the React model if you need to.
import * as ReactDOM from 'react-dom';
If you use ES5 with npm, you can write:
var ReactDOM = require('react-dom');
The react-dom
package also provides modules specific to client and server apps:
İcmal
The react-dom
package exports these methods:
These react-dom
methods are also exported, but are considered legacy:
Note:
Both
render
andhydrate
have been replaced with new client methods in React 18. These methods will warn that your app will behave as if it’s running React 17 (learn more here).
Brauzer Dəstəyi
React supports all modern browsers, although some polyfills are required for older versions.
Qeyd
We do not support older browsers that don’t support ES5 methods or microtasks such as Internet Explorer. You may find that your apps do work in older browsers if polyfills such as es5-shim and es5-sham are included in the page, but you’re on your own if you choose to take this path.
Arayış
createPortal()
This content is out of date.
Read the new React documentation for
createPortal
.
createPortal(child, container)
Creates a portal. Portals provide a way to render children into a DOM node that exists outside the hierarchy of the DOM component.
flushSync()
This content is out of date.
Read the new React documentation for
flushSync
.
flushSync(callback)
Force React to flush any updates inside the provided callback synchronously. This ensures that the DOM is updated immediately.
// Force this state update to be synchronous.
flushSync(() => {
setCount(count + 1);
});
// By this point, DOM is updated.
Note:
flushSync
can significantly hurt performance. Use sparingly.
flushSync
may force pending Suspense boundaries to show theirfallback
state.
flushSync
may also run pending effects and synchronously apply any updates they contain before returning.
flushSync
may also flush updates outside the callback when necessary to flush the updates inside the callback. For example, if there are pending updates from a click, React may flush those before flushing the updates inside the callback.
Legacy Reference
render()
This content is out of date.
Read the new React documentation for
render
.
render(element, container[, callback])
Note:
render
has been replaced withcreateRoot
in React 18. See createRoot for more info.
DOM-da göstərilən container
-ə React elementini render edərək komponent referansı qaytar (state-siz komponentlər üçün null
qaytarır).
Əgər container
-ə əvvəl başqa React elementi render edilmişdirsə, bu funksiya olan container
-i yalnız yeniləyəcək və DOM-u yeni React elementini göstərmək üçün dəyişəcək.
Əgər vacib olmayan callback arqumenti təmin edilibsə, təmin edilən funksiya komponent render edildikdən və ya yeniləndikdən sonra çağrılacaq.
Qeyd:
render()
təmin edilən konteynerin daxilini kontrol edir. İlk çağırışda, konteynerin içində olan bütün DOM elementlər silinir. Sonrakı dəyişikliklər isə React-in DOM müqayisə edən alqoritmi ilə səmərəli formada yenilənir.
render()
konteyner nodunu dəyişmir (yalnız konteynerin uşaqlarını dəyişir). Mövcud olan uşaqları silmədən yeni komponenti mövcud olan DOM noduna əlavə etmək mümkündür.Hal hazırda
render()
anaReactComponent
instansiyasına referansı qaytarır. Amma bu dəyərin istifadəsi köhnəlib və bu dəyərdən istifadə etməyin. Çünki React gələcəkdə bəzi hallarda komponentləri asinxron formada render edə bilər. Əgər sizə anaReactComponent
instansiyasına referans lazımdırsa, tövsiyə olunan həll ana elementə callback ref-i qoşmaqdır.Using
render()
to hydrate a server-rendered container is deprecated. UsehydrateRoot()
instead.
hydrate()
This content is out of date.
Read the new React documentation for
hydrate
.
hydrate(element, container[, callback])
Note:
hydrate
has been replaced withhydrateRoot
in React 18. See hydrateRoot for more info.
render()
-dən fərqli olaraq bu funksiya ReactDOMServer
tərəfindən render edilən HTML kontenti olan konteyneri hidrat etmək üçün işlədilir. React mövcud markapa hadisə işləyicilərini qoşmağa çalışacaq.
React render edilən kontentin server və klientdə eyni olmasını umur. Bu, mətnlərdə olan fərqlilikləri düzəldə bilir amma siz bütün uyğunsuzlara baq kimi davranıb düzəltməyə çalışın. Təkmilləşmə modunda, React hidrasiya zamanı baş verən bütün uyğunsuzluqlar haqqında xəbərdarlıq edir. Uyğunsuzluqlar zamanı attribut fərqlərinin düzəlməsinə heç bir qarantiya yoxdur. Bunun səbəbi performan ilə bağlıdır. Bir çox applikasiyalarda uyğunsuzluqlar nadir olduğundan bütün markapları validasiya etmək çox bahalıdır.
Əgər elementin atributu və ya mətn kontenti server və klientdə qaçılmaz şəkildə fərqlənirsə (məsələn tarix), siz elementə suppressHydrationWarning={true}
əlavə etməklə xəbərdarlığı söndürə bilərsiniz. Bu yalnız bir dərəcə dərinlikdə işləyir və yalnız çıxış yolu kimi işlətmək üçün nəzərdə tutulub. Bunu çox işlətməyin. Mətn kontenti olmadıqda, React yenə də uyğunsuzluqları düzəltməyə bilər və bu gələcək yeniliklərə kimi eyni qala bilər.
Əgər sizə server və klientdə bilərəkdən fərqli render etmək lazımdırsa siz iki-keçidli render etmədən istifadə edə bilərsiniz. Klientdə fərqli render edilməli komponentlər this.state.isClient
state (componentDidMount
-da bunu true
ilə təyin edə bilərsiniz) dəyərini oxuya bilərlər. Bu səbəbdən ilkin render keçidində klient server ilə eyni kontenti render edəcək və uyğunsuzluq olmayacaq. Amma hidrasiyadan sonra sinxron formada ikinci keçid baş verəcək. Nəzərə alın ki, bu yanaşmada komponentlər iki dəfə render edildiyindən komponentləriniz yavaş işləyə bilərlər. Bu səbəbdən bu yolu diqqət ilə işlədin.
Yavaş internet sürətlədində istifadəçi təcrübəsindən zehinli olun. Javascript kodu ilkin HTML renderindən çox gec sonra yüklənə bilər. Bu səbəbdən klient keçidində fərqli bir şey render edildikdə, keçid çox xoşagəlməz ola bilər. Amma yaxşı icra edildikdə, applikasiyanın “qabığını” serverdə render etmək faydalı ola bilər. Bunu markap uyğunsuzluqları olmadan edə bilmək üçün, əvvəlki paraqrafda olan izahata baxın.
unmountComponentAtNode()
This content is out of date.
Read the new React documentation for
unmountComponentAtNode
.
unmountComponentAtNode(container)
Note:
unmountComponentAtNode
has been replaced withroot.unmount()
in React 18. See createRoot for more info.
Mount olunmuş React komponenti DOM-dan silir və bütün aid olan hadisə işləyicilərini və state-i təmizləyir. Əgər konteynerə heç bir komponent mount edilməyibsə bu funksiyanı çağırdıqda heç nə baş vermir. Bu funksiya komponent unmount edildikdə true
, unmount edilməyə komponent olmadıqda isə false
qaytarır.
findDOMNode()
This content is out of date.
Read the new React documentation for
findDOMNode
.
Qeyd:
findDOMNode
DOM noduna daxil olmaq üçün bir üsuldur. Bu üsulun komponent abstraksiyasını sındırdığına görə bir çox hallarda bu üsuldan istifadə etməyi tövsiyə etmirik.StrictMode
-da bu üsul köhnəlib.
findDOMNode(component)
Əgər komponent DOM-a mount edilibsə bu funksiya brauzerdə komponentə müvafiq nativ DOM elementini qaytarır. Bu metod anket sahələrinin dəyərlərini oxumaq və DOM ölçmələri aparmaq kimi əməliyyatlar üçün DOM-dan dəyərləri oxumaq üçün faydalıdır. Bir çox hallarda, siz DOM noduna ref qoşub findDOMNode
-dan istifadə etməyə bilərsiniz.
Komponent null
və ya false
render etdikdə findDOMNode
null
qaytarır. Komponent mətn render etdikdə, findDOMNode
dəyəri saxlayan mətn DOM nodu qaytarır. React 16-dan başlayaraq komponent fraqment ilə bir neçə uşaq qaytara bilər. Bu halda findDOMNode
ilk boş olmayan uşağın DOM nodunu qaytaracaq.
Qeyd:
findDOMNode
yalnız mount olunmuş komponentlər ilə işləyir (yəni DOM-da yerləşən komponentlər ilə). Əgər siz bu funksiyanı mount olunmamış komponentdə çağırsanız (məsələnfindDOMNode()
funksiyasını hələ yaranmamış komponentinrender()
-ində çağırsanız) xəta atılacaq.
findDOMNode
funksiya komponentlərində işlənə bilməz.
createPortal()
ReactDOM.createPortal(child, container)
Portal yaradır. Portallar DOM komponenti iyerarxiyası kənarında olan DOM noduna uşaqları render etmək üçün yol təmin edir.