Плюсы і мінусы ReactJS і React Native

  1. Што такое Рэакцыя? Кароткая гісторыя за бібліятэкай
  2. Плюсы ReactJS
  3. 2. Дазвол на паўторнае выкарыстанне Рэактыўныя кампаненты значна эканоміць час
  4. 3. Аднабаковы паток дадзеных у ReactJS забяспечвае стабільны код
  5. 4. Бібліятэка Facebook з адкрытым зыходным кодам: пастаянна развіваецца і адкрыта для грамадства
  6. 5. Redux: зручны дзяржаўны кантэйнер
  7. 6. Шырокі набор рэакцый і Redux
  8. Мінусы ReactJS
  9. 2. Дрэнная дакументацыя
  10. 3. 'HTML у маім JavaScript!' - JSX як бар'ер
  11. 4. Дадатковыя клопаты SEO
  12. ReactJS і React Native: у чым розніца?
  13. Плюсы рэагавання роднай
  14. 1. React Native выкарыстоўвае JavaScript - хуткі і папулярны мова праграмавання
  15. 2. Родныя элементы кіравання і ўласныя модулі ў React Native павышаюць прадукцыйнасць працы
  16. 3. React Native змяшчае ўсе функцыі ReactJS, накіраваныя на паляпшэнне карыстацкага інтэрфейсу
  17. Мінусы React Native
  18. 2. Экспертыза для родных модуляў
  19. 3. Кампаненты іншых
  20. 4. Адставанне аднаўленьняў SDK
  21. 5. Нестабільнасць, праблемы сумяшчальнасці і памылкі
  22. ReactJS і рэагаваць родныя прыкладанні

Час чытання: 13 хвілін

ReactJS і React Native - гэта новыя тэхналогіі для вэб-і мабільнай распрацоўкі, уведзеныя Facebook. Праект быў запушчаны Іарданія Уок, інжынер-праграміст Facebook, у 2011 годзе. Каб спрасціць працэс распрацоўкі і спрыяць зручнасці карыстання, ён вырашыў стварыць бібліятэку, якая дазволіць будаваць вэб-інтэрфейс з JavaScript.

У гэтым артыкуле мы разгледзім, чаму была створана React, а таксама перавагі і недахопы выкарыстання тэхналогій React. Вы можаце перайсці ў раздзел, які інтрыгуе вас найбольш спасылкамі ніжэй:

Што такое Рэакцыя

Плюсы ReactJS

Мінусы ReactJS

ReactJS і React Native

Плюсы рэагавання роднай

Мінусы React Native

Рэагаваць Прыклады прыкладанняў

Што такое Рэакцыя? Кароткая гісторыя за бібліятэкай

Да распрацоўкі ReactJS, Facebook сутыкнуліся з асноўнай задачай карыстання - стварэнне дынамічнага карыстацкага інтэрфейсу з высокай прадукцыйнасцю. Напрыклад, інжынеры хацелі, каб абнаўлення навін адбываліся адначасова з людзьмі, якія выкарыстоўваюць чат.

Для гэтага Facebook павінен быў аптымізаваць сам працэс распрацоўкі, і Джордан Уолк вырашыў зрабіць гэта з дапамогай JavaScript. Ён прапанаваў увесці XHP, сінтаксіс разметкі Facebook у сістэму каардынатаў JS. Ідэя здавалася немагчымай, але ў 2011 годзе яго каманда выпусціла бібліятэку ReactJS на аснове сімбіёза JavaScript і XHP. Тады Facebook зразумеў, што ReactJS працуе хутчэй, чым любая іншая рэалізацыя такога роду.

Што такое ReactJS? ReactJS - гэта бібліятэка JavaScript, якая спалучае ў сабе хуткасць JavaScript і выкарыстоўвае новы спосаб рэндэрынгу вэб-старонак, што робіць іх вельмі дынамічнымі і рэагаваць на ўвод карыстальнікаў. Прадукт значна змяніў падыход Facebook да развіцця. Пасля таго, як бібліятэка была выпушчана ў якасці адкрытага зыходу Інструмент JavaScript У 2013 годзе ён стаў вельмі папулярным дзякуючы рэвалюцыйнаму падыходу да праграмавання карыстацкіх інтэрфейсаў, які ўсталёўвае даўніну канкурэнцыя паміж React і Angular , яшчэ адзін папулярны інструмент для распрацоўкі вэб-сайтаў.

Праз два гады тая ж група інжынераў выпусціла React Native, гібрыдную аснову для распрацоўкі мабільных прыкладанняў для iOS і Android . Інструмент быў заснаваны на тых жа прынцыпах, што і ReactJS, і неўзабаве быў прыняты інжынернай супольнасцю і кампаніямі, якія прытрымліваюцца Мабільная першая стратэгія ,

Як працуе React Native? React Native спалучае ў сабе распрацоўку ўласных прыкладанняў з распрацоўкай карыстацкага інтэрфейсу JavaScript. Нягледзячы на ​​тое, што вылічальныя цяжкія функцыі могуць быць рэалізаваны з уласнымі модулямі для iOS і Android, астатняя частка кода можа быць напісана на JavaScript і распаўсюджваецца на розных платформах. У адрозненне ад крос-платформавых інструментаў PhoneGap і Cordova, React Native не выкарыстоўвае WebView, мабільны рухавік, які абгортвае код. Замест гэтага ён забяспечвае доступ да родных мабільных кантролераў, што дазваляе дасягнуць уласных знешніх прыкладанняў.

Такім чынам, давайце ўважліва разгледзім плюсы і мінусы ReactJS у якасці асноўнага прадукту. Тады мы разгледзім, як адрозніваецца React Native і якія выгады і недахопы ў спадчыну ад ReactJS.

Плюсы ReactJS

1. Віртуальны DOM у ReactJS паляпшае карыстацкі досвед і працу распрацоўшчыка хутчэй

DOM (аб'ектная мадэль дакумента) - гэта лагічная структура дакументаў у фарматах HTML, XHTML ці XML. Апісваючы яго ў звычайным плане, гэта пагадненне аб праглядзе ўводу і вываду дадзеных, якое мае форму дрэва. Вэб-браўзэры выкарыстоўваюць макеты для пераўтварэння або аналізу прадстаўлення HTML-сінтаксісу ў аб'ектную мадэль дакумента, якую мы бачым у браўзэрах.

Дрэва аб'ектаў HTML DOM   Крыніца: W3Schools Дрэва аб'ектаў HTML DOM
Крыніца: W3Schools

Асноўная занепакоенасць традыцыйнай канструкцыяй DOM - гэта тое, як яна апрацоўвае змены, гэта значыць уваходы карыстальнікаў, запыты і гэтак далей. Сервер пастаянна правярае розніцу, выкліканую гэтымі зменамі, каб даць неабходны адказ. Каб правільна адказаць, неабходна таксама абнавіць дрэвы DOM усяго дакумента, які не з'яўляецца эрганамічна сапраўдным, паколькі дрэвы DOM сёння даволі вялікія, у якіх утрымліваюцца тысячы элементаў.

Кампаніі React удалося павялічыць хуткасць абнаўленняў, выкарыстоўваючы віртуальны DOM. У адрозненне ад іншых фреймворкаў, якія працуюць з Real DOM, ReactJS выкарыстоўвае абстрактную копію - Virtual DOM. Ён абнаўляе нават мінімалістычныя змены, якія ўжываюцца карыстальнікам, але не ўплывае на іншыя часткі інтэрфейсу. Гэта таксама магчыма дзякуючы ізаляцыі кампанентаў React, да якой мы пойдзем праз хвіліну, і спецыяльнай структуры дадзеных у бібліятэцы.

Гэта таксама магчыма дзякуючы ізаляцыі кампанентаў React, да якой мы пойдзем праз хвіліну, і спецыяльнай структуры дадзеных у бібліятэцы

Рэальныя і віртуальныя дамы

Гэта робіць абнаўлення сапраўды хуткімі, што дазваляе стварыць высока дынамічны інтэрфейс. Мы можам заўважыць, што гэта напісана ў чаце на Facebook і бачыць адначасова абнаўленні навін. Больш за тое, у ReactJS распрацоўшчыкам не трэба прывязваць DOM да функцыянальнасці ў інтэрфейсе, таму што элементы React ужо звязаны з ім.

Гэты падыход дазваляе распрацоўнікам хутчэй працаваць з UI-аб'ектамі і выкарыстоўваць гарачую перазагрузку (ужыванне змяненняў у рэжыме рэальнага часу). Гэта не толькі павялічыла прадукцыйнасць, але і паскорыла праграмаванне.

2. Дазвол на паўторнае выкарыстанне Рэактыўныя кампаненты значна эканоміць час

Яшчэ адно перавага, якое Facebook прадставіў з React, - гэта магчымасць паўторнага паўторнага выкарыстання кампанентаў кода іншага ўзроўню, яшчэ адзін значны эфект эканоміі часу.

Падумайце пра дызайнераў. Яны пастаянна выкарыстоўваюць тыя ж актывы. Калі яны гэтага не зрабілі, яны павінны будуць маляваць карпаратыўныя лагатыпы, напрыклад, зноў і зноў. Гэта вельмі відавочна: паўторнае выкарыстанне - гэта эфектыўнасць дызайну. У праграмаванні гэты працэс крыху больш складаны. Абнаўленне сістэмы часта ператвараецца ў галаўны боль, бо кожнае змяненне можа паўплываць на працу іншых кампанентаў сістэмы.

Кіраванне абнаўленнямі лёгка для распрацоўнікаў, таму што ўсе кампаненты ReactJS ізаляваныя і змены ў адным не ўплываюць на іншых. Гэта дазваляе паўторна выкарыстоўваць кампаненты, якія не ўносяць змены ў сябе і робяць праграмаванне больш дакладным, эрганамічным і зручным для распрацоўшчыкаў. Праверце гэта кіраўніцтва Алекса Грыгорыяна з WalmartLabs пра тое, як дамагчыся эфектыўнага паўторнага выкарыстання кода з ReactJS.

3. Аднабаковы паток дадзеных у ReactJS забяспечвае стабільны код

ReactJS дазваляе прамую працу з кампанентамі і выкарыстоўвае ўніз перадачу дадзеных, каб пераканацца, што змены дзіцячых структур не закранаюць іх бацькоў. Гэта робіць код стабільным.

Найбольш складаныя сістэмы прагляду JS-прадстаўлення маюць істотны, але зразумелы недахоп - структуру патоку дадзеных. У сістэме мадэляў прагляду дочкавыя элементы могуць паўплываць на бацькоўскі пры змене. Facebook выдаліў гэтыя праблемы ў React JS, робячы яго проста сістэмай прагляду.

Замест таго, каб выкарыстоўваць відавочную прывязку дадзеных, ReactJS выкарыстоўвае адзін кірунак - уніз - паток дадзеных. У такой структуры дзіцячыя элементы не могуць уплываць на бацькоўскія дадзеныя. Каб змяніць аб'ект, усё, што трэба зрабіць распрацоўшчыку, - гэта змяніць стан і прымяняць абнаўлення. Адпаведна, толькі дапушчальныя кампаненты будуць мадэрнізаваны.

4. Бібліятэка Facebook з адкрытым зыходным кодам: пастаянна развіваецца і адкрыта для грамадства

ReactJS быў адным з першых праектаў, звязаных з JavaScript, які быў выпушчаны Facebook з адкрытым зыходным кодам. Гэта азначае, што ReactJS выкарыстоўвае ўсе перавагі бясплатнага доступу - мноства карысных прыкладанняў і дадатковых інструментаў ад кампаній-распрацоўнікаў. У кампаніі Pete Hunt, паводле Facebook, кажа, што прынамсі дзве асноўныя рысы - партыі і абрэзкі - былі створаны распрацоўнікамі, якія заўважылі праект на GitHub. Цяпер ReactJS ёсць 5-е месца ў Тэндэнцыі на GitHub з больш чым 111 000 зорак. І ёсць больш чым 1200 з адкрытым зыходным кодам супрацоўнікі працуюць з бібліятэкай.

5. Redux: зручны дзяржаўны кантэйнер

Перад тым, як напісаць гнеўны каментар, Redux носіць фреймворк, і вы зможаце з задавальненнем выкарыстоўваць яго з Angular або Vue, і што гэта не выключна для рэагавання, звярніце ўвагу, што мы гэта ведаем. Тым не менш, тут варта адзначыць Redux проста таму, што гэтая прылада лічыцца прыладай, якая павінна навучацца інжынерна-рэагаваць, якая ўжываецца прыкладна ў 60 адсоткаў прыкладанняў React. Так, вы можаце выкарыстоўваць Redux з Angular, але верагоднасць таго, што распрацоўшчык React ведае, што Redux значна вышэй, чым ведаць Angular. І вы знойдзеце большую падтрымку супольнасці для вырашэння крывой навучання React Redux. Такім чынам, чаму гэта добра?

Redux спрашчае захоўванне і кіраванне станамі кампанентаў у вялікіх прыкладаннях з вялікай колькасцю дынамічных элементаў, дзе становіцца ўсё больш складана. Redux захоўвае стан прыкладання ў адзіным аб'екце і дазваляе кожнаму кампаненту атрымліваць доступ да стану прыкладання, не займаючыся дзіцячымі кампанентамі і не выкарыстоўваючы зваротныя выклікі. Напрыклад, калі ў вас ёсць два кампаненты, якія маюць адно і тое ж стан (напрыклад, падрабязныя і агульныя прагляды на малюнку ніжэй) і стаяць адзін ад аднаго ў дрэве, без Redux, дадзеныя павінны перадавацца праз некалькі прамежкавых кампанентаў з усімі праблемамі, якія ўзнікаюць з гэта.

Напрыклад, калі ў вас ёсць два кампаненты, якія маюць адно і тое ж стан (напрыклад, падрабязныя і агульныя прагляды на малюнку ніжэй) і стаяць адзін ад аднаго ў дрэве, без Redux, дадзеныя павінны перадавацца праз некалькі прамежкавых кампанентаў з усімі праблемамі, якія ўзнікаюць з гэта

Асноўныя і дэталёвыя інтэрфейсы маюць аднолькавыя дадзеныя, але пераход да бліжэйшага продка гэтых двух кампанентаў можа быць высокім у дрэве.

Прыклад Марка Эрыксана і Сафіі Шумейкера ў fullstackreact.com

Redux забяспечвае цэнтралізаваны аб'ект захоўвання дадзеных, які дазваляе ім атрымаць доступ да гэтых кампанентаў.

Акрамя таго, па меры таго, як стан стане больш кіраваным, прыкладанне лягчэй правярае і рэгіструе змены дадзеных. Акрамя таго, інструмент дазваляе гарачую перазагрузку, якую мы згадвалі вышэй, і шмат іншых карысных дзеянняў. Вы можаце даведацца больш пра Redux у Разуменне кнігі Redux па Ohans Emmanuel.

6. Шырокі набор рэакцый і Redux

І React, і Redux пастаўляюцца з прыстойным наборам інструментаў, якія палягчаюць жыццё распрацоўніка. Напрыклад, Рэагаваць інструменты распрацоўніка пашырэнне для Chrome і аналагічнае для Firefox Дазваляе вывучаць іерархіі кампанентаў у віртуальным DOM і рэдагаваць стан і ўласцівасці. Акрамя таго, вы можаце праверыць Рэагаваць зрок што візуалізуе стан і апоры дрэў; Выберыце DevTools гэта дапамагае пры адладцы і візуалізацыі Паўторна выберыце , Бібліятэка селектара для Redux. Redux DevTools Profiler Monitor дазваляе прафіляваць дзеянні добра ... Chrome DevTools. І ёсць шмат больш, каб паспрабаваць ,

Мінусы ReactJS

1. Высокія тэмпы развіцця

Гэты недахоп трапна апісваюць распрацоўшчыкі Майкла Джэксана і Райана Фларэнцыі ў Modern Web: «Калі вы не заўважылі, што мы тут ездзім на машыне з двума плоскімі шынамі, капот проста ўзляцеў перад лабавым шклом, і мы паняцця не маю, што адбываецца больш! ”Навакольнае асяроддзе пастаянна мяняецца, і распрацоўшчыкі павінны рэгулярна вывучаць новыя спосабы вядзення рэчаў. Усё развіваецца, і некаторыя распрацоўшчыкі не змогуць ісці ў нагу з такімі тэмпамі.

2. Дрэнная дакументацыя

Праблема з дакументацыяй сведчыць аб пастаянных выпусках новых інструментаў. Розныя і новыя бібліятэкі, такія як Redux і Reflux, абяцаюць паскорыць працу бібліятэкі або палепшыць усю экасістэму React. У рэшце рэшт распрацоўшчыкі змагаюцца з інтэграцыяй гэтых інструментаў у ReactJS. Некаторыя члены суполкі лічаць, што тэхналогіі React так хутка абнаўляюцца і паскараюцца, што напісаць належную інструкцыю няма часу. Каб вырашыць гэта, распрацоўшчыкі пішуць уласную дакументацыю для канкрэтных інструментаў, якія выкарыстоўваюцца імі ў бягучых праектах.

3. 'HTML у маім JavaScript!' - JSX як бар'ер

ReactJS выкарыстоўвае JSX , Гэта пашырэнне сінтаксісу, якое дазваляе змешваць HTML з JavaScript. У JSX ёсць свае перавагі (напрыклад, абарона кода ад ін'екцый), але некаторыя члены супольнасці распрацоўнікаў лічаць JSX сур'ёзным недахопам. Распрацоўшчыкі і дызайнеры скардзяцца на складанасць JSX і, адпаведна, рэзкую крывую навучанне.

4. Дадатковыя клопаты SEO

Існуюць асцярогі з нагоды таго, што Google і іншыя пошукавыя сістэмы не могуць праіндэксаваць альбо дрэнна праіндэксаваць дынамічныя вэб-старонкі з рэндэрынгам на кліенце. Гэтыя праблемы не былі цалкам правераны і ёсць разбуральныя матэрыялы вакол. Сам Google пацверджана яшчэ ў 2014 годзе, што іх сканеры здольныя чытаць дынамічны кантэнт. Такім чынам, мы не будзем казаць, што ваша прыкладанне ReactJS не будзе праіндэксавана Google. У рэшце рэшт, гэта 2018.

Тым не менш, вам усё роўна трэба зрабіць некаторыя тэставанні, каб гарантаваць, што ваша прыкладанне зробіць прыяцеля з Google, паколькі ўзніклі праблемы паведамілі некаторымі карыстальнікамі. Спецыялісты SEO рэкамендуюць праходзіць свае прыкладанні React Атрымайце Google інструмент, каб даведацца лепш, як гусеніцы адчуваюць іх.

Хоць гэта не вялікая праблема, SEO можа дадаць да вашых намаганняў па распрацоўцы. Вы можаце даведацца больш пра Рэагаваць прыкладання SEO тэставання тут ,

ReactJS і React Native: у чым розніца?

Праз два гады пасля выпуску ReactJS 2015 года Facebook стварыў React Native. Хоць бібліятэка ReactJS распрацавана для стварэння вэб-інтэрфейсаў, React Native - гэта гібрыдная праграма распрацоўкі прыкладанняў для iOS і Android, якая дазваляе вам паўторнае выкарыстанне да 95 адсоткаў кода, пакідаючы астатнія распрацоўцы канкрэтныя для платформы інтэрфейсы ,

Усе тэхнічныя адрозненні паміж імі абумоўлены мэтамі платформы.

  • Хоць ReactJS выкарыстоўвае Virtual DOM для рэндэрынгу кода браўзэра, React Native выкарыстоўвае ўласныя API, як мост для рэндэрынгу кампанентаў на мабільным тэлефоне. Напрыклад, для кампанентаў Android ён выкарыстоўвае API API, і выклікае API Objective-C для аказання iOS.
  • React Native не выкарыстоўвае HTML. Такім чынам, калі вы працавалі з ReactJS раней, вам прыйдзецца азнаёміцца ​​з сінтаксісам React Native. Напрыклад, ён выкарыстоўвае <Text> замест <p> і <View> замест <div>.
  • Паколькі React Native не выкарыстоўвае CSS, стандартныя CSS-функцыі, такія як анімацыя, працуюць са спецыяльнымі API React Native.

Плюсы рэагавання роднай

Зараз рамка React Native - адна з самых хуткіх і найбольш эфектыўных умоў распрацоўка мабільных прыкладанняў , Гэта падобна на ReactJS, і вось што вы павінны ведаць з пункту гледжання мабільнага тэлефона:

1. React Native выкарыстоўвае JavaScript - хуткі і папулярны мова праграмавання

Паўтарым - JavaScript застаецца адной з самых хуткіх і шырока выкарыстоўваюцца моў праграмавання. Як мы абмяркоўвалі ў нашай артыкуле Плюсы і мінусы распрацоўкі поўнага стэка JavaScript , 55.4 працэнта распрацоўнікаў выкарыстоўваюць JavaScript штогадовае абследаванне перапаўнення стэкаў , Сталасць супольнасці JS дазваляе спецыялістам хутка вывучаць мову і пастаянна прагрэсаваць разам з ёй. Такім чынам, звычайна вы зможаце хутка знайсці распрацоўніка React Native для вашага праекта.

Акрамя таго, React Native выкарыстоўвае і спалучае ў сабе асноўныя перавагі JavaScript і ReactJS. У сувязі з распаўсюджанасцю кода JS, інжынеры могуць працаваць хутчэй і больш эфектыўна, бо ім не трэба перазагружаць распрацаванае прыкладанне пасля кожнага абнаўлення, каб убачыць змены; яны могуць проста абнавіць старонку прагляду.

У некаторых выпадках абнаўленні пасля запуску можна зрабіць хутчэй. Напрыклад, Apple дазваляе змяняць паводзіны прыкладанняў на аснове JavaScript у рэжыме рэальнага часу, не патрабуючы цыклу агляду.

2. Родныя элементы кіравання і ўласныя модулі ў React Native павышаюць прадукцыйнасць працы

React Native робіць некаторыя кампаненты кода з уласнымі API, у адрозненне ад іншых кроссплатформенных платформаў, такіх як PhoneGap, якія робяць код праз WebView, мабільны рухавік. Хоць падыход WebView значна зніжае прадукцыйнасць, React Native звязваецца з мэтавымі кампанентамі для iOS або Android і робіць код уласным API непасрэдна і незалежна. Пры гэтым React выкарыстоўвае асобны паток з інтэрфейсу, што таксама павялічвае паказчык прадукцыйнасці.

WebView Rendering супраць React Native Rendering

Родныя модулі выконваюць яшчэ адну важную ролю. У цяперашні час React забяспечвае набор уласных модуляў, напісаных у Objective-C і Java, па-за скрынкі. Гэтыя модулі нельга паўторна выкарыстоўваць на двух платформах, але яны накіраваны на павышэнне прадукцыйнасці ў цяжкіх вылічальных аперацыях, такіх як рэдагаванне малюнкаў або прайграванне відэа. У асноўным, ваша каманда можа ўжываць існуючыя модулі ці, калі яны маюць досвед працы Java і Objective-C, пішуць самастойныя модулі. Па меры росту супольнасці React некаторыя рэчы ўжо даступныя. Астатняя частка кода можа быць паўторна выкарыстана. Напрыклад, Facebook Ads Manager падзяляе 87 адсоткаў кода ў Android і iOS.

Акрамя таго, React Native забяспечвае простыя інструменты адладкі і абмену паведамленнямі пра памылкі. Напрыклад, падобны на вэб-праграмаванне, спецыялісты могуць выкарыстоўваць інструменты распрацоўшчыка Chrome або Safari, абодва з якіх яны звычайна знаёмыя.

3. React Native змяшчае ўсе функцыі ReactJS, накіраваныя на паляпшэнне карыстацкага інтэрфейсу

React Native выкарыстоўвае ReactJS у якасці бібліятэкі JavaScript, таму мае ўсе свае перавагі. Каб стварыць прыкладанне React Native на розных платформах, распрацоўшчыкам не трэба ведаць мову роднай платформы. Яны павінны валодаць толькі JavaScript і ведаць сінтаксіс React. Але, як ужо згадвалася, яны могуць лёгка дадаваць родныя кампаненты ў код.

Таксама захоўваецца паток дадзеных , таму асноўныя кампаненты могуць рэдагавацца без уздзеяння на дзіцячыя кампаненты. Гэта робіць гнуткую распрацоўку карыстацкага інтэрфейсу і станоўча ўплывае на карыстацкі досвед. Прыкладанні выглядаюць і адчуваюць сябе роднымі.

Мінусы React Native

1. Дакументацыя

На жаль, React Native атрымлівае ў спадчыну галоўны недахоп ReactJS. Супольнасць маладая, таму што даступная дакументацыя дрэнна, асабліва для інтэграцыі з дадатковымі інструментамі.

2. Экспертыза для родных модуляў

Мы абмяркоўвалі родныя модулі ў раздзеле профі. Яны, безумоўна, забяспечваюць гнуткасць у рамках, запаўняючы адсутныя спасылкі на прадукцыйнасць. Калі вам трэба апрацоўваць цяжкія вылічальныя аперацыі, вы можаце ўводзіць уласныя модулі і атрымаць сапраўднае пачуццё для вашага прыкладання.

Аднак, у некаторай ступені, гэта можа пазбавіць пункту кросплатформеннай распрацоўкі, паколькі вам усё яшчэ патрэбныя нейкія інжынеры (Objective-C, Java, альбо абодва) у рэзерве. Так што, магчыма, вам не патрэбны React Native для стварэння наступнага мабільнага Photoshop. Але калі вы не нацэлены на складаныя задачы, досыць экспертызы JS.

3. Кампаненты іншых

Тым не менш, React Native мае шэраг уласных модуляў для iOS і Android па-за скрынкі, але колькасць іншых кампанентаў па-ранейшаму абмежавана. І мы не ведаем дакладна, што пабудаваныя супольнасцю модулі будуць падтрыманы наступнымі выпускамі фрэймворка. Гэта застаецца недахопам, паколькі React Native не прапануе шырокі спектр магчымых магчымасцяў, якія распрацоўшчыкі могуць захаваць у сваіх прыкладаннях.

4. Адставанне аднаўленьняў SDK

React Native часта перацягвае ногі, калі iOS ці Android абнаўляюць свае SDK. Каманда React Native павінна інтэграваць бібліятэку кода з новым праграмным забеспячэннем. І нягледзячы на ​​тое, што яны працуюць даволі хутка, яны не могуць аднавіць кожную частку API адразу. Таму поўная сінхранізацыя паміж React Native і новымі SDK часта займае занадта шмат часу.

Каб даведацца больш пра тое, як структура параўноўваецца з іншымі крос-платформавымі інструментамі, праверце наш прысвечаны артыкул: Ксамарын супраць рэактыўнага супраць іянічнага ,

5. Нестабільнасць, праблемы сумяшчальнасці і памылкі

У гэтым раздзеле варта вылучыць тлустым шрыфтам мноства праблем, якія распрацоўваюць паведамленні распрацоўнікаў пасля працы з React Native, а часам і проста. пытацца «Хто-небудзь можа сказаць мне, калі ў React Native магчымая сур'ёзная распрацоўка прыкладанняў?» Мы не пойдзем так далёка (праверце некаторыя прыкметныя прыкладанні RN ніжэй). Але вось толькі кароткі спіс праблем, з якімі сутыкаюцца інжынеры пры працы з React Native:

  • Гарачая перазагрузка няўдач
  • Несумяшчальнасць бібліятэк супольнасці і розных версій React Native
  • Праблемы з эмулятарам
  • Праблемы з рэакцыяй навігацыі
  • Неабходнасць частай пераўсталёўкі пакетаў
  • Розныя іншыя памылкі

Майце на ўвазе, што інструмент усё яшчэ знаходзіцца ў распрацоўцы, і шлях да бесперабойнага інжынернага вопыту будзе няпростым.

ReactJS і рэагаваць родныя прыкладанні

Кампаніі, якія ўжо прынялі ReactJS або React Native, зрабілі гэта па розных прычынах. Тут самыя прыкметныя ўсынаўшчыкі, акрамя самой Facebook.

Instagram. Каманда Instagram выказала жаданне стварыць вэб-сайт, прыкладанне з адной старонкай, каб наведвальнікі Сеткі таксама атрымлівалі доступ да сацыяльнай платформы. І ReactJS, здавалася, лепш за ўсё падыходзіць для гэтай мэты. Вэб-дадатак было аптымізавана і аказалася хуткім і зручным для карыстальнікаў. Зараз, як мабільныя, так і вэб-прыкладанні Instagram, пабудаваны з React.

Netflix . Netflix, які прыняў ReactJS у 2015 годзе, зараз выкарыстоўвае яго разам з Gibbon, пластам рэндэрынгу. У той час Netflix абраў React дзякуючы аднабаковай мадэлі патоку дадзеных і дэкларатыўнаму падыходу да праграмавання.

Airbnb . Кампанія вырашыла перайсці на ReactJS з-за паўторнага выкарыстання кампанентаў, вельмі простага рэфактарынгу кода і ітэрацыі. Цяпер ён выкарыстоўваецца ва ўнутраных структурах мабільнага прыкладання і вэб-старонкі кампаніі.

Bloomberg . Інтэрнэт-часопіс выбраў React Native пры распрацоўцы мабільнага прыкладання. Іх пост на Тэхналогія ў Bloomberg У блогу гаворыцца, што гэта "першы інструмент, які сапраўды абяцае распрацоўку крос-платформавага прыкладання".

З пункту гледжання прадукцыйнасці, платформа React сапраўды прагрэсіўная, улічваючы, колькі яе кампаній прынялі. у той час як іншыя рамкі паляпшаюць карыстацкі інтэрфейс з пункту гледжання прадукцыйнасці праграмнага забеспячэння, маладая і часам брудная React Native накіравана на змяненне спосабу зносін прыкладанняў з праграмным і апаратным забеспячэннем. ReactJS, з іншага боку, з простай ідэі ліквідацыі непаладак была ператворана ў рашэнне, якое можа значна аптымізаваць намаганні вэб-распрацоўкі і павысіць яе эфектыўнасць.

І React працягвае ўдасканальвацца. Напрыклад, каманда абяцанні Вялікія перабудовы па рэарганізацыі, уключаючы змяненні ў існуючую мадэль патокаў, асінхроннае рэндэрынгу, і шэраг іншых рэформаў, накіраваных на тое, каб бібліятэка была гнуткай і лёгкай.

Гэты пост з'яўляецца часткай нашай серыі "Добра і дрэннае". Для атрымання дадатковай інфармацыі пра плюсы і мінусы самых папулярных тэхналогій, глядзіце іншыя артыкулы серыі:

Добра і дрэннае развіццё Java

Добра і дрэннае для мабільнага развіцця Xamarin

Добра і недахоп JavaScript для распрацоўкі поўных стэкаў

Распрацоўка вэб-прыкладанняў "Добрыя і дрэнныя" Node.js

Мова праграмавання "Добры і дрэнны"

Добра і недахоп у .NET Framework Programming

Інструмент аўтаматызацыі выпрабаванняў дабра і дрэннага селену

Добра і мінус распрацоўкі прыкладанняў для Android

Што такое Рэакцыя?
Што такое ReactJS?
Такім чынам, чаму гэта добра?