Home / Function/ hydrateProperties() — react Function Reference

hydrateProperties() — react Function Reference

Architecture documentation for the hydrateProperties() function in ReactDOMComponent.js from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  894d4888_e1c9_cdd6_e0cb_7451b6fba151["hydrateProperties()"]
  1e990658_7cea_75be_1f24_2399bdf9f15b["ReactDOMComponent.js"]
  894d4888_e1c9_cdd6_e0cb_7451b6fba151 -->|defined in| 1e990658_7cea_75be_1f24_2399bdf9f15b
  d1920c22_65b3_03a6_5c07_e0adab00dcde["validatePropertiesInDevelopment()"]
  894d4888_e1c9_cdd6_e0cb_7451b6fba151 -->|calls| d1920c22_65b3_03a6_5c07_e0adab00dcde
  9a006a44_c580_470b_507b_17fea64729bd["listenToNonDelegatedEvent()"]
  894d4888_e1c9_cdd6_e0cb_7451b6fba151 -->|calls| 9a006a44_c580_470b_507b_17fea64729bd
  25aca4ae_e70f_705d_7673_e44af72ab539["checkControlledValueProps()"]
  894d4888_e1c9_cdd6_e0cb_7451b6fba151 -->|calls| 25aca4ae_e70f_705d_7673_e44af72ab539
  7fde30c4_2df7_4194_0c3e_083dd0f57c00["validateInputProps()"]
  894d4888_e1c9_cdd6_e0cb_7451b6fba151 -->|calls| 7fde30c4_2df7_4194_0c3e_083dd0f57c00
  754de9fa_432c_542e_fa21_08b18b75915b["initInput()"]
  894d4888_e1c9_cdd6_e0cb_7451b6fba151 -->|calls| 754de9fa_432c_542e_fa21_08b18b75915b
  2d1887fd_1055_7a9f_f81b_d9416d83bdab["validateOptionProps()"]
  894d4888_e1c9_cdd6_e0cb_7451b6fba151 -->|calls| 2d1887fd_1055_7a9f_f81b_d9416d83bdab
  c18a6119_e933_0faf_e206_a100b0cc50ec["validateSelectProps()"]
  894d4888_e1c9_cdd6_e0cb_7451b6fba151 -->|calls| c18a6119_e933_0faf_e206_a100b0cc50ec
  b12eb1de_52b7_7e30_8597_6e5ab493b767["validateTextareaProps()"]
  894d4888_e1c9_cdd6_e0cb_7451b6fba151 -->|calls| b12eb1de_52b7_7e30_8597_6e5ab493b767
  d7552454_ad8c_6921_661d_7d0abf4e6add["initTextarea()"]
  894d4888_e1c9_cdd6_e0cb_7451b6fba151 -->|calls| d7552454_ad8c_6921_661d_7d0abf4e6add
  ddbc1690_cbca_9f67_caf6_506c865c480a["checkForUnmatchedText()"]
  894d4888_e1c9_cdd6_e0cb_7451b6fba151 -->|calls| ddbc1690_cbca_9f67_caf6_506c865c480a
  a0421d9a_64b7_2b13_1226_e3a3b9292e4e["trapClickOnNonInteractiveElement()"]
  894d4888_e1c9_cdd6_e0cb_7451b6fba151 -->|calls| a0421d9a_64b7_2b13_1226_e3a3b9292e4e
  style 894d4888_e1c9_cdd6_e0cb_7451b6fba151 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/react-dom-bindings/src/client/ReactDOMComponent.js lines 3103–3263

export function hydrateProperties(
  domElement: Element,
  tag: string,
  props: Object,
  hostContext: HostContext,
): boolean {
  if (__DEV__) {
    validatePropertiesInDevelopment(tag, props);
  }

  // TODO: Make sure that we check isMounted before firing any of these events.
  switch (tag) {
    case 'dialog':
      listenToNonDelegatedEvent('cancel', domElement);
      listenToNonDelegatedEvent('close', domElement);
      break;
    case 'iframe':
    case 'object':
    case 'embed':
      // We listen to this event in case to ensure emulated bubble
      // listeners still fire for the load event.
      listenToNonDelegatedEvent('load', domElement);
      break;
    case 'video':
    case 'audio':
      // We listen to these events in case to ensure emulated bubble
      // listeners still fire for all the media events.
      for (let i = 0; i < mediaEventTypes.length; i++) {
        listenToNonDelegatedEvent(mediaEventTypes[i], domElement);
      }
      break;
    case 'source':
      // We listen to this event in case to ensure emulated bubble
      // listeners still fire for the error event.
      listenToNonDelegatedEvent('error', domElement);
      break;
    case 'img':
    case 'image':
    case 'link':
      // We listen to these events in case to ensure emulated bubble
      // listeners still fire for error and load events.
      listenToNonDelegatedEvent('error', domElement);
      listenToNonDelegatedEvent('load', domElement);
      break;
    case 'details':
      // We listen to this event in case to ensure emulated bubble
      // listeners still fire for the toggle event.
      listenToNonDelegatedEvent('toggle', domElement);
      break;
    case 'input':
      if (__DEV__) {
        checkControlledValueProps('input', props);
      }
      // We listen to this event in case to ensure emulated bubble
      // listeners still fire for the invalid event.
      listenToNonDelegatedEvent('invalid', domElement);
      // TODO: Make sure we check if this is still unmounted or do any clean
      // up necessary since we never stop tracking anymore.
      validateInputProps(domElement, props);
      // For input and textarea we current always set the value property at
      // post mount to force it to diverge from attributes. However, for
      // option and select we don't quite do the same thing and select
      // is not resilient to the DOM state changing so we don't do that here.
      // TODO: Consider not doing this for input and textarea.
      if (!enableHydrationChangeEvent) {
        initInput(
          domElement,
          props.value,
          props.defaultValue,
          props.checked,
          props.defaultChecked,
          props.type,
          props.name,
          true,
        );
      }
      break;
    case 'option':
      validateOptionProps(domElement, props);
      break;
    case 'select':

Domain

Subdomains

Frequently Asked Questions

What does hydrateProperties() do?
hydrateProperties() is a function in the react codebase, defined in packages/react-dom-bindings/src/client/ReactDOMComponent.js.
Where is hydrateProperties() defined?
hydrateProperties() is defined in packages/react-dom-bindings/src/client/ReactDOMComponent.js at line 3103.
What does hydrateProperties() call?
hydrateProperties() calls 11 function(s): checkControlledValueProps, checkForUnmatchedText, initInput, initTextarea, listenToNonDelegatedEvent, trapClickOnNonInteractiveElement, validateInputProps, validateOptionProps, and 3 more.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free