Самое простое решение - создать функцию JavaScript и вызвать его для обратного вызова Ajax success
.
function callServerAsync(){
$.ajax({
url: '...',
success: function(response) {
successCallback(response);
}
});
}
function successCallback(responseObj){
// Do something like read the response and show data
alert(JSON.stringify(responseObj)); // Only applicable to JSON response
}
function foo(callback) {
$.ajax({
url: '...',
success: function(response) {
return callback(null, response);
}
});
}
var result = foo(function(err, result){
if (!err)
console.log(result);
});
Нет, использование React.render()
- это «единственный способ» сделать это.
Возможно, вы ожидаете чего-то рядом с подобными веб-компонентами, где вы можете определить пользовательские элементы и поместить их в свой HTML, но это не так, как работает React (возможно, возможно).
Существует, однако, библиотека, называемая x-react
, где вы можете зарегистрировать эти типы элементов, но все же она работает на JavaScript, а не прямо вверх по HTML.
В типичном приложении у вас будет компонент высокого уровня контроллера, установленный на DOM таким образом, но этот компонент будет содержать иерархию дочерних компонентов в методе визуализации для создания структуры вашего интерфейса. Это идея композиционных представлений, которые являются преимуществом реакции. Эти дочерние компоненты могут использоваться непосредственно в jsx методов рендеринга родителей так же, как вы надеялись, поэтому вам действительно нужно только один раз вызвать React.render
на компоненте верхнего уровня.