Каков самый быстрый способ конвертировать приложение React в React Native?
Это может быть наивный вопрос, но я не мог найти слишком много информации по этой теме.
У меня есть полностью функциональное приложение response-redux, и теперь я хотел бы портировать его на iOS и Android. Мне не нужно использовать какие-либо встроенные функции, такие как GPS или камера и т.д. В теории я просто хочу сделать своего рода веб-просмотр, который запускает существующее приложение React, а затем настраивает его, пока он не станет более презентабельным.
Моя первая попытка состояла в том, чтобы просто использовать мой текущий файл jsbundle и вставить его в AppDelegate как jsCodeLocation. Это ожидало, что всевозможные ошибки, такие как "окно", не определены.
Я думаю, мой вопрос: как люди обычно управляют своими родными и неродными кодами? Являются ли они полностью отдельными или есть способ переработать большую часть кода?
Ответы
Ответ 1
Некоторые из многоразовых вещей styles
:
var style = {
box: {height: 30, width: 30, padding: 10, ect...}
}
Logic
, например, состояние:
constructor(props){
super(props);
this.state= {text: "hi"};
}
состояние может быть разделено между navite и dom таким образом
<View>
<Text>this.state.text</Text>
</View>
dom выглядит следующим образом
<div>this.state.text</div>
Вы даже можете обмениваться функциями, но вы должны быть осторожны, как было указано выше, если вы не вызываете прямо в какой-либо dom или refs в своей логике.
onClick(){
this.setState({text: "good bye"});
}
Ответ 2
Вы не можете просто использовать весь свой код в собственном приложении. Прежде всего, вы должны следовать нативной архитектуре реагирования, а затем разрабатывать свой пользовательский интерфейс, используя нативные компоненты реакции. https://facebook.github.io/react-native/docs/getting-started.html Большую часть помощи вы получите здесь.
Также есть еще один вариант: вы можете просто создать новый реактивный проект, использовать в нем веб-представление и отображать там весь свой веб-сайт. https://facebook.github.io/react-native/docs/webview.html
Ответ 3
Они обычно довольно разные, отчасти потому, что ваша цель рендеринга отличается (т. div
Нет div
ов), а отчасти из-за недоступности window
. Возможно повторное использование кода между веб-приложениями и нативными приложениями, но только если вы очень осторожны с этим.
Из сообщения в блоге о реакции на выпуск:
Стоит отметить, что мы не гонимся "напиши один раз, беги куда угодно". Разные платформы имеют разные взгляды, ощущения и возможности, и поэтому мы все равно должны разрабатывать отдельные приложения для каждой платформы.
Ответ 4
WebViews и React-native - две совершенно разные концепции. Либо вы хотите пойти с первым (чем вы можете использовать свое приложение без особых хлопот), либо с последним. В этом случае вы, вероятно, могли бы повторно использовать некоторую бизнес-логику, однако большую часть рендеринга пришлось бы переписать.
Реакция native - это learn once, write anywhere
, а не learn once, write once
:)
Ответ 5
Фактически, этот "Convert" - это то, что продвигает React по сравнению с AngulaJS или Veu, например. Для Facebook было бы разумно добавить эту функцию, поскольку React и React Native являются их продуктом.