#php #reactjs
#php #reactjs
Вопрос:
Я полный новичок в REACT, особенно для извлечения информации с сервера. У меня нет никакого API внутри моего бэкэнда, так что… Могу ли я сгенерировать код react следующим образом?
Пример моего компонента:
var Test= React.createClass({
render: function () {
return (
<div>
<p>
This is my test: {this.props.name}
</p>
</div>
);
}
});
Как я думаю, я могу «визуализировать» этот компонент react с помощью цикла PHP:
<script type="text/babel">
<?php foreach($tests as $test){ ?>
ReactDOM.render(
<div className="text-center">
<Test name="Test 1" />
<Test name="laralala" />
</div>
,document.getElementById("test")
);
<?php} ?>
</script>
Но я думаю, что предыдущий «способ» — это совершенно плохая практика… Кто-нибудь может мне немного помочь? Я не собираюсь ничего менять в серверной части…
Большое вам спасибо.
Комментарии:
1. Вы думали о том, чтобы поместить данные в качестве глобальной / статической переменной JS внутри HTML и просто написать обычное приложение React? 🙂
2. О, например
var test = <?php echo json_encode($tests); ?>;
???3. Точно. Пока вам нужны только данные изначально, это будет работать. Проблема, с которой вы столкнетесь, заключается в том, что вам придется перезагружать свою страницу каждый раз, когда
$tests
обновлялась (например, с помощью формы). Это как бы противоречит всей этой логике «одностраничного приложения». Но я думаю, что если у вас нет API, вы застряли с этим решением.4. Хммм, я понимаю. На самом деле я не хочу СПА. Мне нужна только внешняя среда для улучшения качества моих приложений 🙂 вы порекомендуете мне другой вариант или ReactJS — это вариант для не SPA? Кстати, разместите свой комментарий как и ответ
Ответ №1:
Доступ к данным из PHP
Одним из возможных решений было бы поместить ваши данные (сгенерированные PHP) на сгенерированную HTML-страницу в виде глобальных / статических переменных JS, например var data = <?php echo json_encode($data); ?>;
.
Пока вам нужны только данные изначально, это будет работать нормально. Проблема, с которой вы столкнетесь, заключается в том, что вам придется перезагружать свою страницу каждый раз, когда $data
обновлялась (например, с помощью формы). Это как бы противоречит всей этой логике «одностраничного приложения». Но я думаю, что если у вас нет API, вы застряли с этим решением.
@СПА-центр
Реакция в настоящее время в моде. Но если вам не нужна вся его мощь (быть SPA с маршрутизацией, состоянием на стороне клиента, …) Я бы предложил просто использовать что-нибудь простое, но мощное, например jQuery
. Пользоваться им прекрасно, даже в 2016 году. Вы также можете изучить Polymer или веб-компоненты.
Если вы еще не знаете React и нуждаетесь в нем только для рендеринга некоторого HTML, я не думаю, что вам нужно его изучать. Есть и другие хорошие альтернативы для рендеринга динамического HTML (не для этого ли изначально был режим PHP?!).
Комментарии:
1. У меня есть мой компонент React, который подключается с помощью Webpack. Для работы этого компонента требуется 2 параметра: — идентификатор документа для рендеринга, — хост API для доступа. Как мне передать эти 2 из PHP в React? Есть ли лучший способ, чем глобальные переменные JS?
2. Вы можете использовать рендеринг на стороне сервера. Например. github.com/reactjs/react-php-v8js