是否可以通过文档片段呈现组件?

时间:2015-04-06 06:18:07

标签: reactjs

基本上我想将title元素渲染到head元素中,就像这样

<head>
  <HeadFragment />
</head>

目前只能通过实际呈现为组件来实现,但如果使用注入头部的外部脚本,这将导致各种问题。

我基本上想要

var HeadFragment = React.createClass({
    render: function () {
        return (<fragment>
            <title>{this.props.title}</title>
            ... meta ...
            ... styles ...
            ... scripts ...
        </fragment>)
    }
});

React.render(<HeadFragment />, document.querySelector('head'));

但片段节点不应该是实际的DOM节点,而应该是文档片段。

如果没有这种支持,它会使整页渲染变得非常不可能,并迫使我们做一些其他的事情来修改这样的事情而不破坏HTML规范。

1 个答案:

答案 0 :(得分:2)

修改整个html容器,head等文档片段是完全不可靠的。过去有很多关于此问题的讨论:https://groups.google.com/forum/#!topic/reactjs/4jI5xe7TXzQ以及GH等。

https://github.com/matthewwithanm/react-frozenhead这样的项目试图根据您提供的内容进行正确的更新,例如使用document.setTitle等更改标题,但是是的。