Каков самый быстрый способ конвертировать приложение 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 являются их продуктом.