unmountComponentAtNode
创建一个弹窗函数,通常会先
const a = document.createElement('div');
document.body.appendChild(a);
ReactDOM.render(<Modal>, a);
在body上创建一个div称作a,再往div里塞入Modal组件
如果要关闭弹窗则
a.parentNode.removeChild(a);
同时还要卸载渲染在a里面的组件,所以需要
const unmountResult = ReactDOM.unmountComponentAtNode(a);
if (unmountResult && a.parentNode) {
a.parentNode.removeChild(a);
}
findDomNode
react中获取真实dom有两种方法,一种是 react 的ref,一种是 ReactDOM 的 findDomNode
使用方法
let Btn = document.getElementById('btn')
ReactDOM.findDOMNode(Btn).style.color = 'red'
let btn = <APP />
cosnt dom=ReactDOM.findDOMNode(btn)
1.ref加在原生dom上,获取到的就是原生dom;ref加在组件上,获取到的是组件实例
2.ReactDOM.findDOMNode 传入的参数如果是原生dom,获取到的还是原生dom,没什么用;
如果传入的参数是组件,获取到的是,组件render里面return的真实dom
网友评论