在 React 之外更新视图

Updating the view outside of React

如果您在 React 渲染方法之外更新视图,虚拟 DOM 会更新吗?我正在异步加载一些基本模板,然后只是用 React 更新组件,我只是担心,如果我更改模板,我是否会反对虚拟 DOM diff 的性能提升。

在 Reacts 控制之外更新 DOM 很好,这是将不使用 React 的插件集成到 React 组件中的常用方法。但是你真的不应该同时使用 React 和其他一些模板系统来呈现相同的 DOM 节点。

您应该做的只是 return 在您的 render 方法中创建一个空的 <div>,然后在 componentDidMount 中获取那个 DOM 节点使用您的其他模板系统将某些内容渲染到该节点中。

类似于:

var MyComponent = React.createClass({
  componentDidMount() {
    var node = React.findDOMNode(this);
    otherTemplateSystem.render(node, {some: data});
  },
  render() {
    return <div></div>;
  }
});