Remove ads
From Wikipedia, the free encyclopedia
(познат и као или ; транскр. Ријакт) је Јаваскрипт библиотека отвореног кода која обезбеђује преглед података записаних преко HTMLа. React прегледи су обично обезбеђени коришћењем компоненти које садрже додатне компоненте дефинисане као прилагођене HTML ознаке. React обезбеђује програмеру модел у којем подкомпоненте не могу директно да утичу на спољашње компоненте, ефикасно ажурирање HTML документа при промени података и јасно раздвајање компоненти на данашњим једностраничним апликацијама.
Овај чланак је започет или проширен кроз пројекат семинарских радова. Потребно је проверити превод, правопис и вики-синтаксу. Када завршите са провером, допишете да након |проверено=. |
Оригинални аутор(и) | Џордан Валке, Денис Попов |
---|---|
Програмер(и) | Фејсбук, Инстаграм и заједница |
Прво издање | март 2013. |
Стабилно издање | 16.0.0
/ 26. септембар 2017.[1] |
Репозиторијум | |
Написан у | јаваскрипт |
Платформа | вишеплатформски |
Величина | 109 KB (710 KB развојна верзија) |
Тип | ЈаваСкрипт библиотека |
Лиценца | МИТ лиценца |
Веб-сајт |
Он је подржан од стране Facebook, Instagram и заједнице појединачних програмера и корпорација.[2][3][4] Према Јаваскрипт сервису Libscore, React се тренутно користи на сајтовима компанија Netflix, Imgur, Bleacher Report, Feedly, Airbnb, SeatGeek, HelloSign, и другима.[5]
Од марта 2016, React и React Native су Фејсбукова топ два пројекта отвореног кода по броју звездица на Гитхабу,[6] а React је 6. пројекат свих време на Гитхабу по броју звездица.[7]
React је створио Џордан Волке, софтвер инжењер у Фејсбуку. Био је под утицајем XHP, HTML окружења за PHP.[8] Први пут је приказан на Фејсбуковом зиду за новости у 2011. години, а касније и на Инстаграму у 2012. години. Код је постао слободан на JSConf US у мају 2013. године. React Native који омогућава Иос и Андроид програмирање са React библиотеком је објављен на Фејсбуковој React.js конференцији у фебруару 2015. године и постао је код отвореног типа у марту 2015. године.
Својства, скуп непроменљива вредности, прослеђени су приказивачу компоненти као својство у његовим HTML ознакама. Компоненте не могу директно да промене било које својство које им је прослеђено али може бити прослеђена опозивајућа функција да промени вредности.[9] Овај механизам је изражен као „својства иду доле; акције горе”.
На пример, компонента колица за куповину може да укључује више компоненти производа. Визуелизација производа користи само својства која су им прослеђена и то не може да утиче на укупну вредност колица за куповину. Међутим, производ може бити прослеђен опозивајућој функцији као својство које би било позвано када активирамо дугме „обриши овај производ” и тада та функција утиче на укупан рачун.
Још једна специфичност је да се користи виртуелни DOM. React одржава у меморији кеш података, израчунава актуелне разлике, а затим ефикасно ажурира прегледачев DOM.[10] Ово омогућава програмерима да пишу код као да се цела страна освежава при свакој промени, док React библиотека приказује само подкомпоненте које су заиста промењене.
На пример, компоненте колица за куповину могу бити записане да прикажу целокупан садржај колица при било којој промени података. Уколико подкомпоненте производа немају промене у својству, биће употребљен кеширани приказ. Ово значи да ће релативно споре пуне измене у прегледачевом DOM-у бити избегнуте. Поред тога, уколико се промени број производа, подкомпоненте производа ће бити приказане; крајњи HTML се може разликовати у само једном члану и само тај члан ће бити измењен у DOM-у.
Компоненете React-а су обично записане у JSX-у, а Јаваскрипт синтаксно проширење омогућава лако навођење HTML-а и коришћење синтаксе HTML ознака приказаним подкомпонентама. HTML синтакса обрађена у Јаваскрпиту позива React библиотеку. Програмери такође могу да пишу и у чистом Јаваскрпиту. JSX је сличан фејсбуковом синтаксном проширењу за PHP, XHP.
Основне архитектуре React примењују се иза приказаног HTML у претраживачу. На пример, Facebook има динамичке графиконе, који се приказује у <canvas> ознакама,[11] и Netflix и PayPal користе изоморфна учитавања да прикажу исти HTML на серверу и клијенту.[12][13]
React Native библиотеке је објавио Фејсбук 2015. године[14] обезбеђујући React архитектуру изворним iOS и андроид апликацијама.
Статус пројекта може се пратити преко форума главног тима.[15] Међутим, главне промене React пролазе кроз Future of React repo, Issues, итд.[16][17] То омогућава React заједници да оцени сваку потенцијалну карактеристику, експерименталне API-је и Јаваскрипт синтаксна побољшања.
Статус React подпројекта је ажуриран у вики пројекту.[18]
Почетно јавно издање React-а, у мају 2013. године, је користило стандардну Apache License 2.0. У октобру 2014. године, React 0.12.0 заменио је ово са троделном BSD лиценцом и додао посебан PATENTS текстуални фајл, који дозвољава коришћење Фејсбукових патената повезаних са овим софтвером.[19]
"The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporate affiliates, (ii) against any party if such Patent Assertion arises in whole or in part from any software, technology, product or service of Facebook or any of its subsidiaries or corporate affiliates, or (iii) against any party relating to the Software. [...] A „Patent Assertion” is any lawsuit or other action alleging direct, indirect, or contributory infringement or inducement to infringe any patent, including a cross-claim or counterclaim."
Ова неконвенцијална калузула изазвала је бројне контроверзе и расправе у React корисничкој заједници зато што може бити протумачена од стране Фејсбука тако да опозове лиценцу у многим ситуацијама. У то време, Гугл је забранио својим запосленима да користи било који код под овом лиценцом.
На основу реакције заједнице, Фејсбук је ажурирао патент у априлу 2015. године, да би био мање двосмислен.[20]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.