Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  7 2588
Jeg er på utkikk etter en god javascript rammeverk. Men jeg blir litt forvirret siden det er så mange rammeverk der ute. Ser også at en del anbefaler ReactJS, men har også hørt veldig mye positivt om AngularJS av bekjente.

Noen her som er kjent med de ulike rammeverkene? Og kan komme med innspill?
Det er mye uenigheter, og skyttergravskrig mellom ulike rammeverk. Spesielt mellom Angular og React. Men de er alle gode. React er et lite rammeverk, som har fokus på å hjelpe deg med DOM-manipulasjon. Skal du gjøre mer må du laste ned andre rammeverk i tillegg.

Angular er et stort rammeverk, som prøver å løse alt. Det vil si at om du bruker Angular trenger du trolig få andre rammeverk. Men siden rammeverket er så stort er det mye å sette seg inn i og en bratt læringskurve.

Selv bruker jeg begge, kommer ann på prosjektet.
Angular: Har jobbet med Angular 1.x daglig i over et år. Det er veldig greit for å binde ting dynamisk til HTML, f.eks. lage en loop som lister opp noe og sorterer. Når det blir store mengder dynamiske data har det en tendens til å bli tregt og du må bruke tid på å optimalisere og jobbe rundt. Angular 2.0 er nå på trappene, så skal du begynne med Angular er det dette du bør lære deg. 2.0 skal også være mye mer effektivt. Det jeg misliker mest med Angular 1.x (og det lille jeg har lest om 2.0) er unødvendig kompleksitet. Angular bruker en masse konsepter som det tar tid å lære seg og som etter min mening ikke trengs. Et annet problem i Angular 1.x er såkalt toveis-binding (mellom variabler i HTML og JS-koden). Dette gjør ting enkelt til å begynne med, men gjør det vanskelig å holde styr på ting når koden vokser.

ReactJS: React er etter min mening i ferd med å vinne "rammeverkskrige" (enn så lenge). Mange går fra Angular til React. React har envies dataflyt og bruker mer funksjonelle prinsipper. Det er enklere å holde ting modulært. Det er også enklere å bruke React på bare en liten del av en app. React er også mye raskere enn Angular 1.x.

Når det er sagt er det flere andre alternativer det kan være verd å se på: Riot.js (kanskje min favoritt) og Vue.js. Men React har veldig stort momentum nå — det betyr at det er lett å finne dokumentasjon, lett å finne biblioteker og en fordel å ha på CV-en ved jobbsøk.

Skulle jeg valgt et rammeverk for et eget prosjekt nå ville det sannsynligvis blitt React.
Sist endret av Kommune; 15. januar 2016 kl. 19:07.
Det viktigste her, ikke vær redd for å velge feil. Tar du et av de store med et bra community så går det greit uansett. Viktigste er å bare å komme i gang med kodingen. Både React og Angular er helt trygge og gode valg.

At det er lettere å gjøre ting modulært i React enn Angular er jeg helt uenig i. Begge legger godt til rette for komponent basert oppsett av koden. Er bare å droppe controllere og fokusere på å skrive direktiver som har små spesifikke ansvarsområder.
Synes egentlig det er rart at ingen har nevnt ExtJs enda, som helt sikkert er det mest fullstendige js rammeverket som finnes. Angular, og sikkert også React, er glimrende til sitt brukt, men det er ikke fullverdige rammeverk. Nå vet jeg ikke hva du skal bruke rammeverket til, men om det er snakk om businessapplikasjoner og du vil ha muligheter lik det du finner .NET eller Java, så er ExtJs veien å gå.

ExtJs kan brukes til alt fra applikasjoner som kjøres rett i nettleseren til mobilapper og desktopapplikasjoner. Dersom du har erfaring fra f.eks. .NET eller Java er det veldig overkommelig å sette seg inn i også.

ExtJs fyller ti år i år og er også langt mer modent enn "konkurrerende" rammeverk.
Sist endret av Judaz; 16. januar 2016 kl. 01:04.
Approved
Trådstarter
@etse: Er helt enig med deg at man skal komme i gang med kodingen. Har derfor valgt ReactJS. Fordi jeg ser at det er lett å integrere det i .NET. Referer til ReactJS.NET. Er jo .NET utvikler, så det er jo bare positivt det.

@Judaz: Veldig interessant! Skal se litt nærmere på ExtJS etterhvert. Men først skal jeg fokusere på ReactJS.

Takk for svar ellers!
Bruker angular til 2 veis data binding, angularLocalStorage, modulære views, og GUI generelt; som tabeller( ngtable ) og enkel DOM manipulering, dersom jeg skal ha noe mer seriøs funksjonalitet har jeg benyttet Goolge Closure( regnerark, kart, etc ) og D3 for grafer.

Enig med etse controllere er ofte bare tull, lag egne "div elementer" i direktiv.
Sist endret av nudo; 16. januar 2016 kl. 15:57.
Fikk lekt en del med React i jula, og det er sannelig et imponerende bibliotek. Måten ting deles inn i komponenter, og ikke minst JSX-syntaksen, gjorde at jeg mange ganger tenkte «wow, dette er virkelig en smooth måte å gjøre ting på». Synes det blir veldig pen og oversiktlig kode.

React er som nevnt et bibliotek, ikke et helt rammeverk. Så det trengs litt mer for å få alt i hop, og her er det en del valgfrihet. Jeg kan jo nevne noe av det jeg har brukt i tillegg:
  • react-router: For å få til ting som historikk, og å rute url-er til riktige komponenter.
  • redux: Redux kan brukes som en variant av Flux. Flux er et pattern Facebook har utviklet, og som gjerne kan brukes med React, og Redux er veldig enkelt forklart enda bedre enn det igjen. Flyten med Redux kan oppsummeres slik; action->reducer->store->view (og views kan trigge actions). Dette tvinger frem gode valg mtp. flowen i appen, for React bruker enveisbinding og det sørger for at alle verdiene blir manipulert gjennom den samme flowen. Takk til flexd som viste meg denne, for jeg hadde egentlig startet med Flux.
  • redux-simple-router: Støttebibliotek for å få redux til å spille på lag med react-router.
  • redux-thunk: Middleware som er nyttig når man skal lage asynkrone actions (f.eks. når man må sende REST-kall).
  • gulp: JavaScript-verktøy for blant annet å bygge koden. Koden kjøres gjennom transformasjonen babelify for å få støtte for EcmaScript 6-features og reactify for å compile JSX til JS.