React (webrammeverk)

Fra Wikipedia, den frie encyklopedi
React
Skaper(e)Meta
Utvikler(e)Meta, Jordan Walke, Sebastian Markbåge, Dan Abramov, Rachel Nabors, Andrew Clark
Utgitt 29. mai 2013
Nyeste versjon18.2.0 (14. juni 2022)[1][2]
Kodelagerhttps://github.com/facebook/react
Operativsystemmultiplattform
Skrevet iJavaScript
TypeWebapplikasjon
LisensMIT-lisensen[3][4]
Nettstedar.reactjs.org (ar)
ru.reactjs.org (ru)
react.dev (en) (2023–)

React (også kjent som React.js og ReactJS) er et JavaScript-bibliotek[5] for å lage og bygge brukergrensesnitt. Det vedlikeholdes av Meta (tidligere Facebook) og et fellesskap av ulike utviklere og selskaper.[6][7][8]

React brukes gjerne som et utgangspunkt i utviklingen av enkeltside- (engelsk single-page) eller mobilapplikasjoner. Rammeverket er optimalisert for raskt å hente ut skiftende data som må registreres. Henting av data er imidlertid bare begynnelsen på det som skjer på en nettside, og det er grunnen til at komplekse React-applikasjoner vanligvis krever ekstra biblioteker for tilstandsstyring, ruting og interaksjon med et API.[9][10] Redux[11], React Router[12] og Axios[13] er eksempler på slike biblioteker.

Historie[rediger | rediger kilde]

React ble i utgangspunktet utviklet i 2011 av Jordan Walke, en programvareingeniør ved Facebook, først og fremst ved utviklingen av Facebooks Newsfeed-produkt. Senere ble det videreført og tatt i bruk i 2012 i bildedelingstjenesten Instagram. I mai 2013 kunngjorde Facebook at de ønsket å videreføre React i framtiden som et Open Source-Prosjekt. I oktober 2014 ble Reacts programvarelisens endret fra Apache-lisensen til BSD-lisensen som en ytterligere patentlisens, som forbeholder Facebook retten til å trekke tilbake lisensen ved patentstridigheter[14]. Denne ukonvensjonelle klausulen førte til en kontroversiell diskusjon. En omformulering av denne patentklausulen i april 2015 førte ikke til en slutt på konfliktene. I juli 2017 offentliggjorde Apace Software Foundation at de ikke tillater at apache-prosjekter kan ha denne tilleggslisensen. Kontra den opprinnelige informasjonen og uten ønske om å gå tilbake fra klausulen, offentliggjorde Facebook i september 2017 React versjon 16.0.0. under lisensen MIT.

Grunnleggende bruk[rediger | rediger kilde]

Følgende er et rudimentært eksempel på React-bruk i HTML med JSX og JavaScript.

<div id="myReactApp"></div>

<script type="text/babel">
  class Greeter extends React.Component { 
    render() { 
      return <h1>{this.props.greeting}</h1>
    } 
  } 

  ReactDOM.render(<Greeter greeting="Hello World!" />, document.getElementById('myReactApp'));
</script>

Greeter-klassen er en React-komponent som godtar en egenskap greeting. ReactDOM.render-metoden skaper en forekomst av Greeter-komponenten, setter greeting-forekomsten til 'Hello World' og setter inn den gjengitte komponenten som et barnelement i DOM-elementet med ID myReactApp.

Når det vises i en nettleser, blir resultatet

<div id="myReactApp">
  <h1>Hello World!</h1>
</div>

Referanser[rediger | rediger kilde]

  1. ^ «18.2.0 (June 14, 2022)». Besøkt 23. juni 2022. 
  2. ^ https://registry.npmjs.com/react; npmjs; besøksdato: 1. mars 2023.
  3. ^ «React v16.0». 
  4. ^ "Change license and remove references to PATENTS"; tidspunkt: 24. september 2017.
  5. ^ «React - A JavaScript library for building user interfaces.». React. Besøkt 7. april 2018. 
  6. ^ Krill, Paul (15. mai 2014). «React: Making faster, smoother UIs for data-driven Web apps». InfoWorld. 
  7. ^ Hemel, Zef (3. juni 2013). «Facebook's React JavaScript User Interfaces Library Receives Mixed Reviews». InfoQ. 
  8. ^ Dawson, Chris (25. juli 2014). «JavaScript’s History and How it Led To ReactJS». The New Stack. 
  9. ^ Dere, Mohan (19. februar 2018). «How to integrate create-react-app with all the libraries you need to make a great app». freeCodeCamp. 
  10. ^ Samp, Jon (13. januar 2018). «React Router to Redux First Router». About Codecademy. Besøkt 14. juni 2018. 
  11. ^ «Redux · A Predictable State Container for JS Apps». redux.js.org. Besøkt 23. oktober 2019. 
  12. ^ «React Router: Declarative Routing for React». ReactRouterWebsite (engelsk). Besøkt 23. oktober 2019. 
  13. ^ Promise based HTTP client for the browser and node.js: axios/axios, axios, 2019-10-23, https://github.com/axios/axios, besøkt 2019-10-23 
  14. ^ «BSD + PATENTS · facebook/react@dcf415c». GitHub (engelsk). Besøkt 29. januar 2021. 

Eksterne lenker[rediger | rediger kilde]