_mountImageIntoNode: <span class="keyword">function</span>(markup, container, shouldReuseMarkup) {
(<span class="string">"production"</span> !== process.env.NODE_ENV ? invariant(
container && (
(container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE)
),
<span class="string">'mountComponentIntoNode(...): Target container is not valid.'</span>
) : invariant(container && (
(container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE)
)));
<span class="keyword">if</span> (shouldReuseMarkup) {
<span class="keyword">var</span> rootElement = getReactRootElementInContainer(container);
<span class="keyword">if</span> (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {
<span class="keyword">return</span>;
} <span class="keyword">else</span> {
<span class="keyword">var</span> checksum = rootElement.getAttribute(
ReactMarkupChecksum.CHECKSUM_ATTR_NAME
);
rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);
<span class="keyword">var</span> rootMarkup = rootElement.outerHTML;
rootElement.setAttribute(
ReactMarkupChecksum.CHECKSUM_ATTR_NAME,
checksum
);
<span class="keyword">var</span> diffIndex = firstDifferenceIndex(markup, rootMarkup);
<span class="keyword">var</span> difference = <span class="string">' (client) '</span> +
markup.substring(diffIndex - <span class="number">20</span>, diffIndex + <span class="number">20</span>) +
<span class="string">'n (server) '</span> + rootMarkup.substring(diffIndex - <span class="number">20</span>, diffIndex + <span class="number">20</span>);
(<span class="string">"production"</span> !== process.env.NODE_ENV ? invariant(
container.nodeType !== DOC_NODE_TYPE,
<span class="string">'You're trying to render a component to the document using '</span> +
<span class="string">'server rendering but the checksum was invalid. This usually '</span> +
<span class="string">'means you rendered a different component type or props on '</span> +
<span class="string">'the client from the one on the server, or your render() '</span> +
<span class="string">'methods are impure. React cannot handle this case due to '</span> +
<span class="string">'cross-browser quirks by rendering at the document root. You '</span> +
<span class="string">'should look for environment dependent code in your components '</span> +
<span class="string">'and ensure the props are the same client and server side:n%s'</span>,
difference
) : invariant(container.nodeType !== DOC_NODE_TYPE));
<span class="keyword">if</span> (<span class="string">"production"</span> !== process.env.NODE_ENV) {
(<span class="string">"production"</span> !== process.env.NODE_ENV ? warning(
<span class="keyword">false</span>,
<span class="string">'React attempted to reuse markup in a container but the '</span> +
<span class="string">'checksum was invalid. This generally means that you are '</span> +
<span class="string">'using server rendering and the markup generated on the '</span> +
<span class="string">'server was not what the client was expecting. React injected '</span> +
<span class="string">'new markup to compensate which works but you have lost many '</span> +
<span class="string">'of the benefits of server rendering. Instead, figure out '</span> +
<span class="string">'why the markup being generated is different on the client '</span> +
<span class="string">'or server:n%s'</span>,
difference
) : <span class="keyword">null</span>);
}
}
}
(<span class="string">"production"</span> !== process.env.NODE_ENV ? invariant(
container.nodeType !== DOC_NODE_TYPE,
<span class="string">'You're trying to render a component to the document but '</span> +
<span class="string">'you didn't use server rendering. We can't do this '</span> +
<span class="string">'without using server rendering due to cross-browser quirks. '</span> +
<span class="string">'See React.renderToString() for server rendering.'</span>
) : invariant(container.nodeType !== DOC_NODE_TYPE));
setInnerHTML(container, markup);
}
啊 2016 年 5 月 17 日
这代码高亮插件是疯了吧?让人无法看