Я иду через официальный Реагировать Учебник по https://facebook.github.io/react/docs/tutorial.htmlЯвляется ли функция ReactJS рендеринга, вводящая элементы DOM в полном объеме или частичные дополнения?
var CommentBox = React.createClass({
loadCommentsFromServer: function() {
$.ajax({
url: this.props.url,
dataType: 'json',
cache: false,
success: function(data) {
this.setState({
data: data
});
}.bind(this),
error: function(xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this)
})
},
handleCommentSubmit: function(comment) {
$.ajax({
url: this.props.url,
dataType: 'json',
type: 'POST',
data: comment,
success: function(data) {
this.setState({
data: data
});
}.bind(this),
error: function(xhr, status, err) {
console.error(this.props.url, status, err.toString());
// body...
}
});
},
getInitialState: function() {
return {
data: []
};
},
componentDidMount: function() {
this.loadCommentsFromServer();
setInterval(this.loadCommentsFromServer, this.props.pollInterval);
},
render: function() {
return (< div className = "commentBox" >
<h1> Comments < /h1>
<CommentList data={this.state.data}/>
< CommentForm onCommentSubmit = {
this.handleCommentSubmit
}
/>
</div >
);
}
})
Это только одна, но большая часть комментария рендеринга. В функции рендеринга ReactJS уничтожает предыдущих элементов DOM и создает новое дерево элементов DOM на основе полученных данных XHR или сравнивается со старым деревом и только добавляет diff s? Если он создает совершенно новые элементы, как он делает это так быстро, как я понимаю из рассказа уроков, которые React делает это исключительно быстрее, чем другие фреймворки?
[Стоит прочитать.] (Https://facebook.github.io/react/docs/reconciliation.html) – moonwave99
@ moonwave99 благодарит за ссылку. только 2 дня с тех пор, как я начал реагировать, и еще не дошел до документов. Но, хорошо, проясняет механизм концептуально. – dangdis