React
React (познат и као React.js или ReactJS; транскр. Ријакт) је Јаваскрипт библиотека отвореног кода која обезбеђује преглед података записаних преко HTMLа. React прегледи су обично обезбеђени коришћењем компоненти које садрже додатне компоненте дефинисане као прилагођене HTML ознаке. React обезбеђује програмеру модел у којем подкомпоненте не могу директно да утичу на спољашње компоненте, ефикасно ажурирање HTML документа при промени података и јасно раздвајање компоненти на данашњим једностраничним апликацијама. Он је подржан од стране 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Још једна специфичност је да се користи виртуелни DOM. React одржава у меморији кеш података, израчунава актуелне разлике, а затим ефикасно ажурира прегледачев DOM.[10] Ово омогућава програмерима да пишу код као да се цела страна освежава при свакој промени, док React библиотека приказује само подкомпоненте које су заиста промењене. На пример, компоненте колица за куповину могу бити записане да прикажу целокупан садржај колица при било којој промени података. Уколико подкомпоненте производа немају промене у својству, биће употребљен кеширани приказ. Ово значи да ће релативно споре пуне измене у прегледачевом DOM-у бити избегнуте. Поред тога, уколико се промени број производа, подкомпоненте производа ће бити приказане; крајњи HTML се може разликовати у само једном члану и само тај члан ће бити измењен у DOM-у. JSXКомпоненете React-а су обично записане у JSX-у, а Јаваскрипт синтаксно проширење омогућава лако навођење HTML-а и коришћење синтаксе HTML ознака приказаним подкомпонентама. HTML синтакса обрађена у Јаваскрпиту позива React библиотеку. Програмери такође могу да пишу и у чистом Јаваскрпиту. JSX је сличан фејсбуковом синтаксном проширењу за PHP, XHP. Архитектура иза HTML-аОсновне архитектуре React примењују се иза приказаног HTML у претраживачу. На пример, Facebook има динамичке графиконе, који се приказује у <canvas> ознакама,[11] и Netflix и PayPal користе изоморфна учитавања да прикажу исти HTML на серверу и клијенту.[12][13] React NativeReact 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]
Ова неконвенцијална калузула изазвала је бројне контроверзе и расправе у React корисничкој заједници зато што може бити протумачена од стране Фејсбука тако да опозове лиценцу у многим ситуацијама. У то време, Гугл је забранио својим запосленима да користи било који код под овом лиценцом. На основу реакције заједнице, Фејсбук је ажурирао патент у априлу 2015. године, да би био мање двосмислен.[20] Референце
|
Portal di Ensiklopedia Dunia