Angular 8 เป็นเกมเชิงมุมของ Google รุ่นล่าสุด - หนึ่งใน Frameworks JavaScript ที่ดีที่สุด รอบ ๆ ในบทความนี้เราจะเรียกใช้สิ่งที่พิเศษเกี่ยวกับ Angular 8 และแสดงวิธีเริ่มต้นใช้งาน ครั้งแรกดูสั้น ๆ ที่เกิดขึ้นกับสิ่งที่เกิดขึ้นกับกรอบการทำงาน
บทนำของเชิงมุมนำไปสู่การเปลี่ยนแปลงกระบวนทัศน์ในการพัฒนาเว็บ: ในขณะที่ห้องสมุดส่วนใหญ่ จำกัด ตัวเองเพื่อให้การสนับสนุนแก่นักพัฒนาที่มีผลกระทบทางสถาปัตยกรรมที่ค่อนข้าง จำกัด ทีมนักพัฒนาของเชิงมุมไปในทิศทางอื่น ผลิตภัณฑ์ของพวกเขาบังคับให้คุณใช้สถาปัตยกรรมที่เฉพาะเจาะจงโดยมีการเบี่ยงเบนตั้งแต่ยากไปจนถึงไม่มีจุดหมายในเชิงพาณิชย์ ในความเป็นจริงรหัสเชิงมุมส่วนใหญ่ทำงานผ่าน Transpilation Toolchain ที่ค่อนข้างซับซ้อนก่อนที่จะเข้าสู่เบราว์เซอร์
เนื่องจากความสำเร็จอันยิ่งใหญ่ของเชิงมุมทั้งภายในและภายนอกของ Google Inc การพัฒนามี - และมีเสถียรภาพขนาดใหญ่ ซึ่งหมายความว่าการเปลี่ยนแปลงโค้ดที่แตกหักมีน้อยในขณะที่การอัพเกรดกึ่งประจำปีมุ่งเน้นไปที่การปรับกรอบการเปลี่ยนแปลงในการเปลี่ยนแปลงในภูมิทัศน์การท่องเว็บ
ในกรณีของเชิงมุม 8 ตัวอย่างเช่นคอมไพเลอร์ JavaScript ใหม่ถูกปรับใช้ (แม้ว่าจะยังคงทดลอง) มันปรับรหัสความเข้ากันได้ที่สร้างขึ้นให้น้อยลงอย่างมีนัยสำคัญและเร็วขึ้นที่ค่าใช้จ่ายของเบราว์เซอร์รุ่นเก่า นอกจากนี้การสนับสนุน Web Worker ยังรวมอยู่เพื่อเพิ่มขีดความสามารถในการประมวลผลของเชิงมุม ในระยะสั้นมีจำนวนมากที่เห็น - ให้เราดำดิ่งเข้ามา
หากคุณต้องการออกแบบเว็บไซต์โดยไม่มีรหัสลองหนึ่งในนั้นง่าย ๆ ผู้สร้างเว็บไซต์ . และเพื่อให้สิ่งต่าง ๆ วิ่งเรียบเนียนได้รับของคุณ เว็บโฮสติ้ง บริการที่ถูกต้อง
toolchain ของเชิงมุมอาศัยอยู่ในสภาพแวดล้อมของ Nodejs เช่นเดียวกับการเขียนนี้ node.js 10.9 หรือดีกว่านั้นเป็นสิ่งจำเป็น - หากคุณพบว่าตัวเองเป็นรุ่นเก่า เยี่ยมชมเว็บไซต์ Node.js และรับการอัพเกรด รหัสด้านล่างแสดงสถานะเวอร์ชันบนเครื่องนี้
Tamhan @ Tamhan18: ~ $ node -v
v12.4.0
Tamhan @ tamhan18: ~ $ npm -v
6.9.0
toolchain ของเชิงมุมอาศัยอยู่ในยูทิลิตี้บรรทัดคำสั่งชื่อ นวล . สามารถติดตั้งผ่าน NPM ที่รู้จักกันดี
Tamhan @ Tamhan18: ~ $ sudo npm ติดตั้ง -g @ angular / cli
Tamhan @ Tamhan18: ~ $ NG รุ่น
ระวังตอบคำถามที่แสดงในภาพด้านล่าง
การรับข้อมูลรุ่นออกจากเครื่องมือค่อนข้างยาก - ไม่เพียง แต่เป็นไวยากรณ์ที่ไม่ซ้ำกัน แต่เอาต์พุตยังเป็น verbose (ดูภาพด้านล่าง)
นวล สร้างนั่งร้านเชิงมุมสำหรับเรา ในขั้นตอนต่อไปนี้เราต้องการเพิ่มการกำหนดเส้นทางและใช้ SASS สำหรับการขนถ่าย CSS หากการปรับใช้ล้มเหลวด้วยเหตุผลบางอย่างให้ล้างไดเรกทอรีการทำงานและรีสตาร์ท นวล ด้วยสิทธิ์ Superuser
Tamhan @ Tamhan18: ~ $ mkdir Angularspace
Tamhan @ Tamhan18: ~ $ CD Angularspace /
Tamhan @ Tamhan18: ~ / Angularspace $ NG Workertestestest
เวอร์ชั่นใหม่ของ Angular ให้เหมาะสมกับรหัสที่มีความร่วมกันย้อนหลังเพื่อลดผลกระทบ - ไฟล์ที่เรียกว่า เบราว์เซอร์ลิสต์ ให้คุณตัดสินใจว่าจะได้รับการสนับสนุนเบราว์เซอร์ใด เปิด เบราว์เซอร์ลิสต์ และลบคำ ไม่ ด้านหน้า IE 9 ถึง IE11
. .
& gt; 0.5%
2 เวอร์ชั่นล่าสุด
Firefox ESR
ไม่ตาย
IE 9-11 # สำหรับ IE 9-11 รองรับลบ 'ไม่'
สั่งคอมไพล์ของโครงการเปลี่ยนเป็นโฟลเดอร์การกระจายและล้างไฟล์แผนที่ที่ไม่จำเป็น
Tamhan @ Tamhan18: ~ / Angularspace / Workertest $
sudo ng สร้าง
Tamhan @ Tamhan18: ~ / Angularspace / Workertsest / Dist / Workertest $ ls
เรียกต้นไม้เพื่อดูผลลัพธ์ - นวล สร้างไฟล์โค้ดต่าง ๆ หลายรุ่น (ดูภาพด้านล่าง)
คนงานเว็บให้จาวาสคริปต์เข้าสู่แนวรบสุดท้ายของการใช้งานพื้นเมือง: การประมวลผลงานขนานกันอย่างหนาแน่น ด้วย Angular 8 ผู้ทำงานเว็บสามารถสร้างได้จากความสะดวกสบายของ นวล ยูทิลิตี้บรรทัดคำสั่ง
Tamhan @ Tamhan18: ~ / Angularspace / Workertest $
sudo ng สร้างเว็บงาน myworker
สร้าง tsconfig.worker.json (212 ไบต์)
สร้าง SRC / APP / MYWARKER.WARKER.TS (157 ไบต์)
อัปเดต tsconfig.app.json (236 ไบต์)
อัปเดต Angular.json (3640 Bytes)
นวล เอาต์พุตของ 'มีแนวโน้มที่จะดูน่ากลัวได้อย่างรวดเร็วก่อน เปิดไฟล์ src / app / myworker.worker.ts ใน ตัวแก้ไขโค้ด ทางเลือกเปิดเผยรหัสที่คุณควรรู้ดีจาก webworker ข้อมูลจำเพาะ โดยหลักการแล้วคนงานได้รับข้อความและดำเนินการตามต้องการ
/// & lt; lib อ้างอิง = "webworker" / & gt;
AddEventListener ('ข้อความ', ({data}) = & gt; {
Const ตอบสนอง = `การตอบสนองของคนงานต่อ
$ {data} `;
postmessage (ตอบกลับ);
});
แอปพลิเคชั่นเชิงมุมประกอบด้วยส่วนประกอบ การยิงคนงานเว็บของเราทำได้ดีที่สุดใน AppComponent ซึ่งขยายเพื่อรวมผู้ฟังสำหรับ oninit เหตุการณ์. สำหรับตอนนี้มันจะปล่อยข้อมูลสถานะเท่านั้น
นำเข้า {คอมโพเนนต์, oninit} จาก '@ angular / core';
@component ({
. . .
})
ส่งออกคลาส AppComponent ดำเนินการ oninit {
ชื่อ = 'Workertsest';
ngoninit () {
console.log ("appcomponent: oninit ()");
}
}
นักพัฒนา TypeScript ที่มีประสบการณ์ถามตัวเองว่าทำไมรหัสของเราไม่ใช้ตัวสร้างที่จัดทำโดยภาษาการเขียนโปรแกรม เหตุผลที่นั่นคือ ngoninit เป็นเหตุการณ์ที่มีชีวิตชีวาซึ่งถูกไล่ออกเมื่อใดก็ตามที่เหตุการณ์การเริ่มต้นเกิดขึ้น - สิ่งนี้ไม่จำเป็นต้องมีความสัมพันธ์กับการเรียกใช้ในชั้นเรียน
ณ เวลานี้โปรแกรมพร้อมที่จะทำงาน เราจะดำเนินการจากเซิร์ฟเวอร์ภายใน นวล ซึ่งสามารถเรียกใช้ผ่านคำสั่ง Serve แง่มุมที่เรียบร้อยของวิธีนี้คือโปรแกรมตรวจจับการเปลี่ยนแปลงและทำการคอมไพล์ใหม่ในการบิน
Tamhan @ Tamhan18: ~ / Angularspace / Workertest $
sudo ng ให้บริการ
ลองดูที่รูปเพื่อดูสิ่งนี้ในการดำเนินการในภาพด้านล่าง
รับใช้ NG ใส่ที่อยู่ของเว็บเซิร์ฟเวอร์ท้องถิ่นซึ่งมักจะ http: // localhost: 4200 / . เปิดเว็บเพจและเปิดเครื่องมือสำหรับนักพัฒนาเพื่อดูเอาต์พุตสถานะ โปรดจำไว้ว่า console.log เอาต์พุตข้อมูลไปยังคอนโซลเบราว์เซอร์และออกจากคอนโซลของอินสแตนซ์ของ Nodejs ที่ไม่มีใครแตะต้อง
ณ เวลานี้เราสร้างตัวอย่างของผู้ปฏิบัติงานและให้ข้อความ ผลลัพธ์ของมันจะแสดงในคอนโซลเบราว์เซอร์
ถ้า (ประเภทของคนงาน! == 'ไม่ได้กำหนด') {
// สร้างใหม่
Const Worker = คนงานใหม่ ('./ myworker.worker', {ประเภท: 'โมดูล'});
Worker.onMessage = ({data}) = & gt; {
ข้อความ Console.log ('มีข้อความ: $ \
{ข้อมูล\}');
};
worker.postmessage ('สวัสดี');
} อื่น {
console.log ("ไม่สนับสนุนผู้ปฏิบัติงาน");
}
Angular รุ่นในอนาคตจะใช้คอมไพเลอร์ขั้นสูงมากขึ้นนำไปสู่การมองที่ยิ่งใหญ่กว่า ในขณะที่ผลิตภัณฑ์ยังไม่เสร็จสิ้นโครงกระดูกที่เปิดใช้งานไม้เลื้อยสามารถกลับกลายเป็นทางผ่าน NG New Ivy-Project - เปิดใช้งาน Ivy . หรือเปลี่ยนการตั้งค่าคอมไพเลอร์ตามที่แสดงในตัวอย่าง
"angularcompileroptions": {
"Enableivy": จริง
}
คำเตือน: Ivy นำไปสู่การลดขนาดที่น่าทึ่ง แต่มันไม่ฟรี ผลิตภัณฑ์ยังไม่มีเสถียรภาพดังนั้นจึงไม่แนะนำให้ใช้ในสภาพแวดล้อมที่มีประสิทธิผล
เชิงมุม นวล เครื่องมือบรรทัดคำสั่งใช้สคริปต์เด็กภายในบางครั้ง Angular 8 Ups Ante ในตอนนี้คุณสามารถใช้สิ่งอำนวยความสะดวกนี้เพื่อเรียกใช้งานของคุณเองเนื่องจากแอปพลิเคชันของคุณประกอบและรวบรวม
"สถาปนิก": {
"สร้าง": {
"Builder": "@ Angular-devkit /
Build-Angular: เบราว์เซอร์ ",
หนึ่งแอปพลิเคชั่นเรียบร้อยของ นวล สคริปต์เกี่ยวข้องกับการอัปโหลดแอปพลิเคชันโดยตรงไปยังบริการคลาวด์ ที่ ที่เก็บ git ให้สคริปต์ที่มีประโยชน์ที่อัปโหลดงานของคุณไปยังบัญชี Firebase
นักพัฒนาอพยพออกไปจากเชิงมุม 1.x หรือที่เรียกว่า Angularjs มีส่วนแบ่งที่ยุติธรรมของปัญหาที่ได้รับ Navigator เพื่อทำงานในแอปพลิเคชัน 'รวม' บริการตำแหน่งใหม่แบบครบวงจรมีวัตถุประสงค์เพื่อให้กระบวนการนี้ราบรื่นขึ้น
โครงการขนาดใหญ่ได้รับประโยชน์จากความสามารถในการเปลี่ยนโครงสร้างพื้นที่ทำงานแบบไดนามิก สิ่งนี้ทำผ่านเวิร์กสเปซ API ใหม่ที่แนะนำในเชิงมุม 8.0 - ตัวอย่างที่มาพร้อมกับขั้นตอนนี้ให้ภาพรวมอย่างรวดเร็วของพฤติกรรม
ฟังก์ชั่น Async สาธิต () {
Const Host = พื้นที่ทำงาน
Creatorkspacehost (Nodejssynchost ใหม่ ());
Const Workspace = รอพื้นที่ทำงาน
readworkspace ('พา ธ / ไปยัง / เวิร์กสเปซ / ไดเรกทอรี /'
โฮสต์);
Const Project = Workspace.Projects
รับ ('My-app');
Const BuildTarget = Project.Targets
รับ ('สร้าง');
BuildTarget.Options.Optimization = TRUE;
รอพื้นที่ทำงาน.writorkspace (พื้นที่ทำงาน,
โฮสต์);
}
การสร้างฐานรหัส JavaScript ขนาดใหญ่ได้รับน่าเบื่อ Angularjs รุ่นในอนาคตจะใช้ระบบการสร้าง Bazel ของ Google เพื่อเร่งกระบวนการ - น่าเศร้าที่เวลาในการเขียนมันยังไม่พร้อมสำหรับ Primetime
แม้ว่า Google จะดูแลอย่างสุดขีดที่จะไม่ทำลายรหัสคุณสมบัติบางอย่างก็ต้องถูกลบออกตามที่ไม่ต้องการอีกต่อไป ตรวจสอบ รายการค่าเสื่อมราคานี้ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติที่ควรหลีกเลี่ยง
เช่นเคยบทความหนึ่งไม่สามารถทำได้เพื่อการปล่อยตัวทั้งหมด โชคดีที่ บันทึกการเปลี่ยนแปลงนี้ จัดเตรียมรายละเอียดการเปลี่ยนแปลงทั้งหมด - ในกรณีที่คุณรู้สึกอยากตรวจสอบชีพจรของคุณลักษณะที่รักโดยเฉพาะกับคุณ
มีไฟล์จำนวนมากพร้อมสำหรับการอัปโหลดไปยังเว็บไซต์ของคุณหรือไม่ สำรองไว้ในที่น่าเชื่อถือที่สุด การจัดเก็บเมฆ .
บทความนี้ได้รับการตีพิมพ์ในนิตยสารออกแบบเว็บสร้างสรรค์ นักออกแบบเว็บไซต์ .
อ่านเพิ่มเติม:
(เครดิตรูปภาพ: Adobe) แบบอักษรใน Photoshop: ลิงค์ด่ว..
(เครดิตภาพ: ซินดี้คัง) การทำความเข้าใจวิธี�..
เป็นเวลานานฉันพยายามที่จะบรรลุองค์ประกอบภาพที่สมบูรณ์แบบบนหน้าเ�..
สร้างชิ้นส่วนของ ศิลปะ 3 มิติ ด้วยภูมิทัศ�..
เมื่อแนวทางการคิดสร้างสิ่งมีชีวิตใน ZBrush นำเสน�..
การวาดภาพท่าทางห้านาทีเป็นเรื่องสนุกมากเพราะมีเวลาเพียงพอที่จะจ�..
ตลอดปีของประสบการณ์การทำงานในการตั้งค่าสตูด..