2015-04-06 4 views
3

В принципе я хотел бы вынести в заголовке элемента в элемент головки, как этотМожно ли визуализировать компонент через фрагмент документа?

<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.

+0

Вы пытались использовать фактический фрагмент документа в качестве цели «render»? https://developer.mozilla.org/en-US/docs/Web/API/Document/createDocumentFragment – WiredPrairie

+0

, который не работает, но даже если бы он это сделал, мне все равно пришлось бы визуализировать компонент с узлом-оболочкой, а затем добавить к фрагменту, который побеждает цель. –

+0

Я не понимаю, какую проблему вы пытаетесь решить ... Является ли использование виртуальной DOM для рендеринга головы? Это определенно не сладкое место для Реакта, как вы можете видеть. – WiredPrairie

ответ

2

Изменение фрагментов документа, как и весь контейнер html, голова и т. Д., Просто полностью не зависят. Там было много болтовни об этом в прошлом, как здесь: https://groups.google.com/forum/#!topic/reactjs/4jI5xe7TXzQ и о GH и т. Д.

Есть проекты вроде https://github.com/matthewwithanm/react-frozenhead, которые пытаются сделать правильные обновления на основе того, что вы предоставляете, например, смены названия с помощью document.setTitle и т. Д., Но да.

+0

с решением FrozenHead, которое вы опубликовали, это также работает с мета, стилем, скриптом ... затем просто переназначает заголовок? –

Смежные вопросы