Vinkel 8 er den nyeste versjonen av Googles vinkel - en av Beste JavaScript-rammer rundt. I denne artikkelen går vi gjennom det som er spesielt med vinkel 8, og viser deg hvordan du kommer i gang. Først, en kort titt tilbake på det som skjedde med rammen så langt.
Vinkelens introduksjon førte til et paradigmeskifte i webutvikling: Mens de fleste biblioteker begrenset seg til å gi støtte til utviklere med relativt begrenset arkitektonisk innvirkning, gikk vinklesutviklerlaget i den andre retningen. Deres produkt tvinger deg til å bruke en bestemt arkitektur, med avvik som spenner fra vanskelige til kommersielt meningsløst. Faktisk løper de fleste vinkelkode gjennom en relativt kompleks transpilasjonsverktøykontroll før den noen gang treffer nettleseren.
På grunn av den enorme suksessen til vinkel, både innenfor og utenfor Google Inc, har utviklingen - av og stor - stabilisert. Dette betyr at bruddkodeendringer er få, mens de halvårlige oppgraderingene er fokusert på å tilpasse rammen til endringer i nettlesingslandskapet.
I tilfelle av vinkel 8, for eksempel, distribueres en ny JavaScript-kompilator (om enn fortsatt eksperimentelt). Det optimaliserer generert kompatibilitetskode for å være betydelig mindre og raskere på bekostning av eldre nettlesere. Videre er webarbeider-støtte integrert for å øke vinkelens behandlingskapasitet. Kort sagt, det er mye å se - så la oss dykke rett inn.
Hvis du hellere vil designe et nettsted uten kode, prøv en av disse enkle Nettstedbyggere . Og for å få ting til å løpe jevnere, få din Web Hosting. SERVICE HØYRE.
Vinkelens verktøykontroll bor i Nodejs-miljøet. Fra denne skrivingen er node.js 10,9 eller bedre nødvendig - hvis du finner deg selv på en eldre versjon, Besøk Node.js nettstedet og få en oppgradering. Koden nedenfor viser versjonens status på denne maskinen.
tamhan @ tamhan18: ~ $ node -v
v12.4.0.
Tamhan @ Tamhan18: ~ $ NPM -V
6.9.0
Vinkelens verktøykjøri ligger i et kommandolinjeverktøy som heter ng. . Den kan installeres via den velkjente NPM.
Tamhan @ Tamhan18: ~ $ Sudo NPM Install -G @ vinkel / cli
Tamhan @ Tamhan18: ~ $ NG versjon
Vær forsiktig med å svare på spørsmålet som vises i bildet nedenfor.
Å få versjon info ut av verktøyet er ganske vanskelig - ikke bare er syntaksen unik, men utgangen er også verbose (se bildet nedenfor).
ng. genererer vinkel stillas for oss. I de følgende trinnene vil vi legge til ruting, og bruke Sass for CSS-transpilasjon. Skulle distribusjonen ikke av en eller annen grunn, tømme arbeidskatalogen og omstart på nytt ng. med superbrukerrettigheter.
Tamhan @ Tamhan18: ~ $ MKDIR Angularspace
Tamhan @ Tamhan18: ~ $ CD Angularspace /
Tamhan @ Tamhan18: ~ / Angularspace $ NG Ny Workertest
Den nye versjonen av vinkeloptimaliserer bakoverkompatibilitetskoden for redusert effekt - en fil som heter Browserslist. Lar deg bestemme hvilke nettlesere som skal støttes. Åpen Browserslist. og fjern ordet ikke foran IE 9 til IE11.
. . .
& gt; 0,5%
Siste 2 versjoner
Firefox Esr.
ikke død
Dvs. 9-11 # for IE 9-11-støtte, fjern "ikke".
Bestil en kompilering av prosjektet, endre i distribusjonsmappen og rense unødvendige kartfiler.
Tamhan @ Tamhan18: ~ / Angularspace / Workertest $
sudo ng bygge
Tamhan @ Tamhan18: ~ / Angularspace / Workertest / Dist / Workertest $ ls
Påkalle tre for å se resultatene - ng. Oppretter flere versjoner av ulike kodefiler (se bildet nedenfor).
Webarbeidere la JavaScript inn i den siste grensen av innfødte applikasjoner: massivt parallell behandling av oppgaver. Med vinkel 8, kan en webarbeider opprettes rett fra komforten til ng. Kommandolinjeverktøy.
Tamhan @ Tamhan18: ~ / Angularspace / Workertest $
sudo ng generere webarbeider minworker
Opprett tsconfig.worker.json (212 byte)
Opprett SRC / APP / MyWorker.worker.ts (157 byte)
Oppdater tsconfig.app.json (236 bytes)
Oppdater angel.json (3640 bytes)
ng. ens utgang er sannsynlig å se skremmende ved første øyekast. Åpner filen src / app / myworker.worker.ts i en Kodedaktør av valg avslører koden som du burde vite godt fra WebWorder. spesifikasjon. I prinsippet mottar arbeideren meldinger og behandler dem etter behov.
/// & lt; referanse lib = "webworker" / & gt;
addeventlistener ('melding', ({data}) = & gt; {
const response = `arbeidstaker svar på
$ {data} `;
postmessage (respons);
});
Vinkelapplikasjoner består av komponenter. Avfyring av vår webarbeider er best gjort i APPOMCOMENT , som er utvidet til å inkludere en lytter for Oninit. begivenhet. For nå vil det bare gi statusinformasjon.
Importer {komponent, oninit} fra '@ vinkel / kjerne';
@Komponent({
. . .
})
Eksporter klasse APPCOMPONENT implementerer oninit {
tittel = 'workertest';
ngoninit () {
Console.log ("APPCOMBONENT: ONINIT ()");
}
}
Erfarne typekryptere, spør seg selv hvorfor vår kode ikke bruker konstruktøren som tilbys av programmeringsspråket. Årsaken til det er det ngoninit. er en livscyklushendelse som blir sparket når en initialiseringshendelse finner sted - dette trenger ikke å være korrelert til klassens påkalling.
På dette tidspunktet er programmet klar til å kjøre. Vi vil utføre det fra serveren inne i ng. , som kan påberopes via serverkommandoen. Et fint aspekt av denne tilnærmingen er at programmet oppdager endringer og kompromasser prosjektet på flyet.
Tamhan @ Tamhan18: ~ / Angularspace / Workertest $
sudo ng tjene
Ta en titt på figuren for å se dette i aksjon i bildet nedenfor.
ng tjener Putputs adressen til den lokale webserveren, som vanligvis er http: // localhost: 4200 / . Åpne nettsiden og åpne utviklerverktøyene for å se statusutgangen. Husk det Console.Log. Utfører data til nettleserkonsollen og forlater konsollen til Nodejs-forekomsten uberørt.
På dette tidspunktet skaper vi en forekomst av arbeideren og gir den en melding. Resultatene er så vist i nettleserkonsollen.
Hvis (Typeof arbeidstaker! == 'undefined') {
// Lage en ny
const Worker = ny arbeidstaker ('./ myworker.worker', {Type: 'modul'});
arbeider.onmessage = ({data}) = & gt; {
Console.log ('Side fikk melding: $ \
{data\}');
};
arbeider.Postmessage ('hallo');
} else {
konsoll.log ("ingen arbeidstaker støtte");
}
Fremtidige versjoner av vinkel vil bruke en mer avansert kompilator, som fører til enda mindre visninger. Mens produktet ikke er ferdig ennå, kan et Ivy-aktivert skjelett bli oppstått via NG New Ivy-prosjekt - Aktiver-Ivy . Alternativt kan du endre kompilatorinnstillingene som vist i snippeten.
"AngularCompileroptions": {
"Entabley": True
}
Et ord med advarsel: Ivy fører til fantastiske størrelsesreduksjoner, men det er ikke gratis. Produktet har ennå ikke stabilisere seg, så det anbefales ikke å bruke det i produktive miljøer.
Vinkelens ng. Kommandolinjeverktøyet brukte barneskript internt i noen tid. Vinkel 8 ups Ante I du kan nå, bruk dette anlegget til å kjøre dine egne oppgaver, ettersom søknaden din er samlet og samlet.
"Arkitekt": {
"bygge": {
"Builder": "@ vinkel-Devkit /
Bygg-vinkel: nettleser ",
En fin påføring av ng. Skript innebærer direkte opplasting av applikasjoner til Cloud Services. De Git repository. Gir et nyttig skript som laster opp arbeidet ditt til en Firebase-konto.
Utviklere som migrerer vekk fra vinkel 1.x, også kjent som angularjs, har hatt en rettferdig andel av problemer som får navigatoren til å fungere rett i "kombinert" applikasjoner. Den nye enhetlige plasseringstjenesten tar sikte på å gjøre denne prosessen jevnere.
Store prosjekter drar nytte av evnen til å endre arbeidsområdets struktur dynamisk. Dette gjøres via det nye arbeidsområdet API introdusert i vinkel 8.0 - Stektet som følger med dette trinnet gir en rask oversikt over oppførselen.
Async-funksjonen demonstrerer () {
const host = arbeidsområder.
CreatherSpacehost (ny nodejssynchost ());
const workspace = venter arbeidsområder.
Readworkspace ('Path / To / Workspace / Directory /',
vert);
const Prosjekt = arbeidsområde.projects.
få ('min-app');
const buildtarget = prosjekt.targets.
få ('bygge');
buildtarget.options.optimization = sant;
venter arbeidspaces.writeworkspace (arbeidsområde,
vert);
}
Å bygge store JavaScript-kode baser blir kjedelig. Fremtidige versjoner av Angularjs vil bruke Googles Bazel Build System for å akselerere prosessen - dessverre, på tidspunktet for skriving var det ikke klar for primetime.
Selv om Google tar stor forsiktighet, ikke å bryte koden, må enkelte funksjoner bare fjernes som de ikke lenger er nødvendig. Sjekk Denne avskrivningslisten for å lære mer om funksjoner som bør unngås.
Som alltid kan en artikkel aldri gjøre rettferdighet til en hel utgivelse. Heldigvis, Denne endringen logger Gir en detaljert liste over alle endringene - bare hvis du noen gang har lyst til å sjekke pulsen av en funksjon, spesielt kjære for deg.
Fikk mange filer klar for opplasting til nettstedet ditt? Tilbake dem opp i de mest pålitelige skylagring .
Denne artikkelen ble opprinnelig publisert i Creative Web Design Magazine Webdesigner .
Les mer:
[1. 3] [Bilde: Jack Renwick Studio] Hvis noen vet hvordan man skal håndtere en vanskelig kort, er det de smarte desig..
[1. 3] Grunnlaget for hvert nettsted er å dele opp siden ned i mindre elementer som har innhold. Det store problemet med dette fo..
[1. 3] Hvis du er interessert i å lære mer om Houdini, sørg for at du går på å generere New York (april 24-25). På kon..
[1. 3] Affinity Designer er en suite med vektor redigeringsverktøy tilgjengelig for Mac og Windows, så vel som på iPad...
[1. 3] Ved å bruke en nodebasert, prosessorisk tilnærming, gir 3D-programvare Houdini fra SideFX digitale artister et bemerkelse..
[1. 3] Det er noe merkelig tilfredsstillende om lava lamper. Et beroligende, fargerikt lys og mesmeriserende voksagtige blobs som ..
3D-utskrift har blitt enormt populært. Hvis du vil begynne å skrive ut din egen 3D Art. , det er noen ting å se etter for å få de beste resultatene. Her vil jeg vise deg h..
[1. 3] Som en heltid Freelancer, er jeg vant til å jobbe over en rekke stilarter og tegningsteknikker . Disse inkl..