Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用ReactDOM.render变异DOM元素?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何使用ReactDOM.render变异DOM元素?

Javascript 如何使用ReactDOM.render变异DOM元素?,javascript,reactjs,Javascript,Reactjs,调用ReactDOM.render(Hello,container)将在呈现时调用container.appendChild。然后我可以使用container.childNodes[0]获取DOM节点 但是,我希望能够使用ReactDOM直接操作DOM节点。例如,假设我已经有了一个跨度,我只想使用React来操纵这个跨度 const span = document.createElement('span') // suppose this is given in a function argum

调用
ReactDOM.render(Hello,container)
将在呈现时调用
container.appendChild
。然后我可以使用container.childNodes[0]获取DOM节点

但是,我希望能够使用ReactDOM直接操作DOM节点。例如,假设我已经有了一个跨度,我只想使用React来操纵这个跨度

const span = document.createElement('span') // suppose this is given in a function argument for some other frontend library
ReactDOM.render(<span style={{color: 'blue'}}>Hello</span>, span)
const span=document.createElement('span')//假设这是在某个其他前端库的函数参数中给出的
render(你好,span)

有没有办法使其不创建子范围,而是直接变异给定范围?

根据官方文档,调用ReactDOM.render将更新组件内的内容:
如果React元素先前已呈现到容器中,则将对其执行更新,并且仅在必要时对DOM进行修改以反映最新的React元素。
因此,您可以创建容器div,修改其中的子对象:

import { StrictMode } from "react";
import ReactDOM from "react-dom";

import App from "./App";

const rootElement = document.getElementById("root");
ReactDOM.render(
  <StrictMode>
    <App />
  </StrictMode>,
  rootElement
);

ReactDOM.render(
  <StrictMode>
    <div>test</div>
  </StrictMode>,
  rootElement
);
从“react”导入{StrictMode};
从“react dom”导入react dom;
从“/App”导入应用程序;
const rootElement=document.getElementById(“根”);
ReactDOM.render(

根据官方文档,调用ReactDOM.render将更新组件内部的内容:
如果React元素先前已呈现到容器中,则将对其执行更新,并且仅在必要时对DOM进行修改以反映最新的React元素。
因此,您可以创建容器div,修改其中的子对象:

import { StrictMode } from "react";
import ReactDOM from "react-dom";

import App from "./App";

const rootElement = document.getElementById("root");
ReactDOM.render(
  <StrictMode>
    <App />
  </StrictMode>,
  rootElement
);

ReactDOM.render(
  <StrictMode>
    <div>test</div>
  </StrictMode>,
  rootElement
);
从“react”导入{StrictMode};
从“react dom”导入react dom;
从“/App”导入应用程序;
const rootElement=document.getElementById(“根”);
ReactDOM.render(

不,没有。处理现有的、服务器端呈现的HTML的唯一方法是使用React也在服务器端呈现HTML,并在客户端对其进行水合处理。+Hmm。这也是我正在阅读的内容……这真的很不幸。似乎是一个非常有用的实用程序……不,没有。处理现有的、服务器端的HTML的唯一方法是去渲染,HTML是在服务器端用React来渲染HTML,并在客户端对其进行水合处理。+嗯。这也是我正在阅读的内容…这真的很不幸。似乎是一个非常有用的工具。。。