Javascript 什么是空的?
Javascript 什么是空的?,javascript,reactjs,Javascript,Reactjs,这个节点是什么?为什么它可以渲染为React组件?这样怎么办 这实际上是: //完全有效的组件 ()=>空 //也是一个非常有效的组件 常量MyComponent=React.createClass({ render(){ if(this.props.hidden)返回null; 返回我的组件实现; } }); 查看React代码的这一部分,它是创建以下内容的代码: var nodeValue = ' react-empty: ' + this._domID + ' '; if (tra
这个节点是什么?为什么它可以渲染为React组件?这样怎么办 这实际上是:
//完全有效的组件
()=>空
//也是一个非常有效的组件
常量MyComponent=React.createClass({
render(){
if(this.props.hidden)返回null;
返回我的组件实现;
}
});
查看React
代码的这一部分,它是创建以下内容的代码:
var nodeValue = ' react-empty: ' + this._domID + ' ';
if (transaction.useCreateElement) {
var ownerDocument = hostContainerInfo._ownerDocument;
var node = ownerDocument.createComment(nodeValue);
ReactDOMComponentTree.precacheNode(this, node);
return DOMLazyTree(node);
} else {
if (transaction.renderToStaticMarkup) {
// Normally we'd insert a comment node, but since this is a situation
// where React won't take over (static pages), we can simply return
// nothing.
return '';
}
return '<!--' + nodeValue + '-->';
}
},
var nodeValue='react empty:'+this.\u domID+';
if(transaction.useCreateElement){
var ownerDocument=hostContainerInfo.\u ownerDocument;
var node=ownerDocument.createComment(nodeValue);
ReactDOMComponentTree.Precchenode(此节点);
返回DOMLazyTree(节点);
}否则{
if(transaction.renderToStaticMarkup){
//通常我们会插入注释节点,但由于这是一种情况
//如果React无法接管(静态页面),我们可以简单地返回
//没什么。
返回“”;
}
返回“”;
}
},
因此,基本上如果组件返回null,它将创建一条注释,显示此元素为空,但请注意,如果您购买了注释,请在那里放置注释
所有JavaScript框架都会尝试在DOM中使用注释,以显示它们处理代码,类似的一个是ng,例如在angular中…注意,React>=16
,您将不会再看到
哇!感谢如果我使用ajax获取服务器渲染组件字符串(如“”),我希望将其装载在此节点中。怎么做。
// A perfectly valid component
() => null
// Also a perfectly valid component
const MyComponent = React.createClass({
render() {
if (this.props.hidden) return null;
return <p>My component implementation</p>;
}
});
var nodeValue = ' react-empty: ' + this._domID + ' ';
if (transaction.useCreateElement) {
var ownerDocument = hostContainerInfo._ownerDocument;
var node = ownerDocument.createComment(nodeValue);
ReactDOMComponentTree.precacheNode(this, node);
return DOMLazyTree(node);
} else {
if (transaction.renderToStaticMarkup) {
// Normally we'd insert a comment node, but since this is a situation
// where React won't take over (static pages), we can simply return
// nothing.
return '';
}
return '<!--' + nodeValue + '-->';
}
},