ประมาณ 15 ปีที่แล้ว ฉันทำงานในบริษัทที่เราสร้างแอปสำหรับตัวแทนการท่องเที่ยว พนักงานสนามบิน และบริษัทสายการบิน นอกจากนี้เรายังสร้างเฟรมเวิร์กภายในของเราเองสำหรับส่วนประกอบ UI และความสามารถของแอปหน้าเดียว เรามีส่วนประกอบสำหรับทุกสิ่ง: ฟิลด์ ปุ่ม แท็บ ช่วง ตารางข้อมูล เมนู เครื่องมือเลือกวันที่ การเลือก และการเลือกหลายรายการ เรายังมีองค์ประกอบ div ด้วยซ้ำ อย่างไรก็ตาม องค์ประกอบ div ของเรานั้นยอดเยี่ยมมาก มันช่วยให้เราสามารถโค้งมนบนเบราว์เซอร์ทั้งหมด ซึ่งไม่ว่าจะเชื่อหรือไม่ก็ตาม ไม่ใช่เรื่องง่ายที่จะทำในเวลานั้น

งานของเราเกิดขึ้นในจุดหนึ่งในประวัติศาสตร์ของเราเมื่อ JS, Ajax และ HTML แบบไดนามิกถูกมองว่าเป็นการปฏิวัติที่นำเราไปสู่อนาคต ทันใดนั้น เราก็สามารถอัปเดตเพจแบบไดนามิก รับข้อมูลจากเซิร์ฟเวอร์ และหลีกเลี่ยงการไปยังหน้าอื่นๆ ซึ่งถูกมองว่าช้าและปรากฏสี่เหลี่ยมสีขาวขนาดใหญ่บนหน้าจอระหว่างทั้งสองหน้า มีวลีหนึ่งที่ได้รับความนิยมโดย Jeff Atwood (ผู้ก่อตั้ง StackOverflow) ซึ่งอ่านว่า: “แอปพลิเคชันใด ๆ ที่สามารถเขียนด้วย JavaScript ในที่สุดก็จะเขียนด้วย JavaScript”— Jeff Atwood

สำหรับเราในตอนนั้น รู้สึกเหมือนเป็นการกล้าที่จะสร้างสรรค์แอปเหล่านั้นขึ้นมาจริงๆ รู้สึกเหมือนเป็นการอนุมัติแบบครอบคลุมในการทำทุกอย่างกับ JS ดังนั้นเราจึงทำทุกอย่างกับ JS และเราไม่ได้ใช้เวลาค้นคว้าวิธีการอื่นในการทำสิ่งต่างๆ เลย เราไม่รู้สึกว่ามีแรงจูงใจที่จะเรียนรู้อย่างถูกต้องว่า HTML และ CSS สามารถทำอะไรได้บ้าง เราไม่ได้มองว่าเว็บเป็นแพลตฟอร์มแอปที่มีการพัฒนาอย่างครบถ้วน ส่วนใหญ่เราเห็นว่ามันเป็นสิ่งที่เราต้องแก้ไข โดยเฉพาะอย่างยิ่งเมื่อเป็นเรื่องของการรองรับเบราว์เซอร์ เราก็แค่โยน JS เข้าไปให้มากขึ้นเพื่อทำงานให้เสร็จ การสละเวลาเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำงานของเว็บและสิ่งที่มีอยู่ในแพลตฟอร์มจะช่วยฉันได้ไหม แน่นอนว่าฉันอาจจะโกนโค้ดจำนวนหนึ่งที่ไม่จำเป็นจริงๆ ได้ แต่ ณ เวลานั้น อาจจะไม่มากขนาดนั้น คุณเห็นไหมว่าความแตกต่างของเบราว์เซอร์ค่อนข้างสำคัญในตอนนั้น นี่เป็นช่วงเวลาที่ Internet Explorer ยังคงเป็นเบราว์เซอร์ที่โดดเด่น โดยมี Firefox ตามมาเป็นอันดับสอง แต่เริ่มสูญเสียส่วนแบ่งการตลาดเนื่องจาก Chrome ได้รับความนิยมอย่างรวดเร็ว แม้ว่า Chrome และ Firefox จะค่อนข้างดีในการยอมรับมาตรฐานเว็บ แต่สภาพแวดล้อมที่แอปของเราทำงานอยู่นั้นหมายความว่าเราต้องรองรับ IE6 มาเป็นเวลานาน แม้ว่าเราจะได้รับอนุญาตให้สนับสนุน IE8 แต่เรายังคงต้องจัดการกับความแตกต่างมากมายระหว่างเบราว์เซอร์ ไม่เพียงเท่านั้น เว็บในยุคนั้นยังไม่มีความสามารถมากมายที่สร้างไว้ในแพลตฟอร์ม

ก้าวไปข้างหน้าอย่างรวดเร็วในวันนี้ สิ่งต่าง ๆ มีการเปลี่ยนแปลงอย่างมาก เราไม่เพียงแต่มีความสามารถเหล่านี้มากขึ้นกว่าที่เคย แต่อัตราที่ความสามารถเหล่านี้พร้อมใช้งานก็เพิ่มขึ้นเช่นกัน ให้ฉันถามคำถามอีกครั้ง: สละเวลาเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำงานของเว็บและสิ่งที่มีอยู่บนแพลตฟอร์มจะช่วยคุณในวันนี้หรือไม่ ใช่อย่างแน่นอน การเรียนรู้ที่จะเข้าใจและใช้แพลตฟอร์มเว็บในปัจจุบันจะทำให้คุณได้เปรียบเหนือนักพัฒนารายอื่นๆ อย่างมาก ไม่ว่าคุณจะทำงานด้านประสิทธิภาพ การเข้าถึง การตอบสนอง ทั้งหมดเข้าด้วยกัน หรือเพียงแค่จัดส่งฟีเจอร์ UI หากคุณต้องการทำงานในฐานะวิศวกรที่รับผิดชอบ การรู้ว่าเครื่องมือที่คุณมีจะช่วยให้คุณบรรลุเป้าหมายได้เร็วและดีขึ้น บางสิ่งคุณอาจไม่ต้องการห้องสมุดอีกต่อไป เมื่อรู้ว่าเบราว์เซอร์ใดรองรับในปัจจุบัน คำถามก็คือ: เราจะทิ้งอะไรได้บ้าง เราจำเป็นต้องมีองค์ประกอบ div เพื่อทำมุมโค้งมนในปี 2568 หรือไม่? แน่นอนว่าเราไม่ทำ คุณสมบัติ border-radius ได้รับการสนับสนุนโดยเบราว์เซอร์ที่ใช้อยู่ทั้งหมดในปัจจุบันมานานกว่า 15 ปี ณ จุดนี้ และรูปทรงเข้ามุมกำลังจะมาในเร็วๆ นี้ สำหรับมุมที่แปลกใหม่ยิ่งขึ้น มาดูคุณลักษณะล่าสุดที่ขณะนี้พร้อมใช้งานในเบราว์เซอร์หลักๆ ทั้งหมด และที่คุณสามารถใช้เพื่อแทนที่การขึ้นต่อกันที่มีอยู่ในโค้ดเบสของคุณ ประเด็นไม่ได้อยู่ที่การละทิ้งไลบรารี่ที่คุณรักทั้งหมดและเขียนโค้ดเบสของคุณใหม่โดยทันที สำหรับทุกสิ่งทุกอย่าง คุณจะต้องคำนึงถึงการสนับสนุนเบราว์เซอร์ก่อน และตัดสินใจโดยพิจารณาจากปัจจัยอื่นๆ ที่เฉพาะเจาะจงสำหรับโครงการของคุณ คุณลักษณะต่อไปนี้ถูกนำมาใช้ในกลไกเบราว์เซอร์หลักสามรายการ (Chromium, WebKit และ Gecko) แต่คุณอาจมีข้อกำหนดการสนับสนุนเบราว์เซอร์ที่แตกต่างกันซึ่งทำให้ไม่สามารถใช้งานได้ทันที ขณะนี้ยังเป็นเวลาที่ดีที่จะเรียนรู้เกี่ยวกับคุณลักษณะเหล่านี้ และอาจวางแผนที่จะใช้งานในบางจุด Popovers และกล่องโต้ตอบ Popover API, องค์ประกอบ

HTML และองค์ประกอบหลอก ::backdrop สามารถช่วยคุณกำจัดการพึ่งพาป๊อปอัปได้คำแนะนำเครื่องมือ และไลบรารีกล่องโต้ตอบ เช่น Floating UI, Tippy.js, Tether หรือ React Tooltip พวกเขาจัดการการเข้าถึงและการจัดการโฟกัสสำหรับคุณ สามารถปรับแต่งได้สูงโดยใช้ CSS และสามารถเคลื่อนไหวได้อย่างง่ายดาย หีบเพลง องค์ประกอบ
คุณลักษณะชื่อสำหรับองค์ประกอบที่ไม่เกิดร่วมกัน และองค์ประกอบหลอก ::details-content จะขจัดความจำเป็นในการใช้ส่วนประกอบหีบเพลง เช่น Bootstrap Accordion หรือส่วนประกอบ React Accordion การใช้แพลตฟอร์มที่นี่หมายความว่าผู้ที่รู้ HTML/CSS จะเข้าใจโค้ดของคุณได้ง่ายขึ้น โดยไม่ต้องเรียนรู้การใช้ไลบรารีเฉพาะก่อน นอกจากนี้ยังหมายความว่าคุณมีภูมิคุ้มกันต่อการทำลายการเปลี่ยนแปลงในห้องสมุดหรือการหยุดให้บริการห้องสมุดนั้น และแน่นอนว่า ดาวน์โหลดและรันโค้ดน้อยลงด้วย องค์ประกอบรายละเอียดที่แยกจากกันไม่จำเป็นต้องมี JS เพื่อเปิด ปิด หรือทำให้เคลื่อนไหว ไวยากรณ์ซีเอสเอส เลเยอร์แบบเรียงซ้อนสำหรับโค้ดเบส CSS ที่จัดระเบียบมากขึ้น การซ้อน CSS สำหรับ CSS ที่กะทัดรัดยิ่งขึ้น ฟังก์ชันสีใหม่ สีสัมพันธ์ และการผสมสี ฟังก์ชัน Maths ใหม่ เช่น abs(), sign(), pow() และอื่นๆ ช่วยลดการพึ่งพาตัวประมวลผลล่วงหน้า CSS, ไลบรารียูทิลิตี้ เช่น Bootstrap และ Tailwind หรือแม้แต่ไลบรารี CSS-in-JS แบบรันไทม์ ตัวเปลี่ยนเกม :has() หนึ่งในคุณสมบัติที่ได้รับการร้องขอมากที่สุดมาเป็นเวลานาน ทำให้ไม่จำเป็นต้องใช้โซลูชันที่ใช้ JS ที่ซับซ้อนมากขึ้นอีกต่อไป เจเอส ยูทิลิตี้ส์ เมธอด Modern Array เช่น findLast() หรือ at() รวมถึงเมธอด Set เช่น Difference(), intersection(), union() และอื่นๆ สามารถลดการพึ่งพาไลบรารีเช่น Lodash ได้ แบบสอบถามคอนเทนเนอร์ การสืบค้นคอนเทนเนอร์ทำให้องค์ประกอบ UI ตอบสนองต่อสิ่งอื่นนอกเหนือจากขนาดวิวพอร์ต และทำให้สามารถนำมาใช้ซ้ำได้มากขึ้นในบริบทที่แตกต่างกัน ไม่จำเป็นต้องใช้ไลบรารี่ JS-heavy UI สำหรับสิ่งนี้อีกต่อไป และไม่จำเป็นต้องใช้โพลีฟิลด้วย เค้าโครง Grid, Subgrid, flexbox หรือ multi-column มีมานานแล้ว แต่เมื่อพิจารณาจากผลการสำรวจ State of CSS แล้ว เห็นได้ชัดว่านักพัฒนามักจะระมัดระวังอย่างมากในการนำสิ่งใหม่ๆ มาใช้ และรอเป็นเวลานานมากก่อนที่จะลงมือทำ คุณสมบัติเหล่านี้เป็นพื้นฐานมาเป็นเวลานานแล้ว และคุณสามารถใช้มันเพื่อกำจัดการพึ่งพาสิ่งต่าง ๆ เช่น ระบบกริดของ Bootstrap, ยูทิลิตี้ flexbox ของ Foundation Framework, ตารางคงที่ของ Bulma, ตาราง Materialize หรือคอลัมน์ Tailwind ฉันไม่ได้บอกว่าคุณควรทิ้งกรอบงานของคุณ ทีมของคุณนำมาใช้ด้วยเหตุผลบางอย่าง และการนำออกอาจเป็นโครงการใหญ่ แต่การดูว่าแพลตฟอร์มเว็บสามารถนำเสนออะไรได้บ้างโดยไม่ต้องมี wrapper จากบุคคลที่สามมาด้านบนนั้นมาพร้อมกับคุณประโยชน์มากมาย สิ่งที่คุณอาจไม่ต้องการอีกต่อไปในอนาคตอันใกล้นี้ ตอนนี้ เรามาดูสิ่งที่คุณไม่จำเป็นต้องใช้ห้องสมุดในอนาคตอันใกล้นี้กันดีกว่า กล่าวคือ สิ่งต่างๆ ด้านล่างนี้ยังไม่พร้อมสำหรับการนำไปใช้ในวงกว้าง แต่การตระหนักรู้และการวางแผนสำหรับการใช้งานในภายหลังอาจเป็นประโยชน์ได้ การวางตำแหน่งสมอ การวางตำแหน่งจุดยึด CSS จัดการตำแหน่งของป๊อปโอเวอร์และคำแนะนำเครื่องมือที่สัมพันธ์กับองค์ประกอบอื่น ๆ และดูแลให้มองเห็นได้ แม้ในขณะที่ย้าย เลื่อน หรือปรับขนาดหน้า นี่เป็นส่วนเสริมที่ยอดเยี่ยมสำหรับ Popover API ที่กล่าวถึงก่อนหน้านี้ ซึ่งจะทำให้การโยกย้ายออกจากโซลูชัน JS ที่เน้นประสิทธิภาพมากขึ้นง่ายยิ่งขึ้น API การนำทาง Navigation API สามารถใช้เพื่อจัดการการนำทางในแอปหน้าเดียว และอาจเป็นส่วนเสริมที่ดี หรือแม้แต่ทดแทน React Router, การกำหนดเส้นทาง Next.js หรืองานการกำหนดเส้นทางเชิงมุม ดู API การเปลี่ยนผ่าน View Transitions API สามารถเคลื่อนไหวระหว่างสถานะต่างๆ ของเพจได้ ในแอปพลิเคชันหน้าเดียว จะทำให้การเปลี่ยนสถานะระหว่างสถานะต่างๆ ราบรื่นเป็นเรื่องง่ายมาก และสามารถช่วยคุณกำจัดไลบรารีแอนิเมชัน เช่น Anime.js, GSAP หรือ Motion.dev ได้ ยิ่งไปกว่านั้น API ยังสามารถใช้กับแอปพลิเคชันหลายหน้าได้อีกด้วย จำได้ไหมก่อนหน้านี้เมื่อฉันบอกว่าเหตุผลที่เราสร้างแอปหน้าเดียวในบริษัทที่ฉันทำงานเมื่อ 15 ปีที่แล้วเพื่อหลีกเลี่ยงการโหลดหน้าเว็บซ้ำเมื่อนำทาง หาก API นั้นพร้อมใช้งานในขณะนั้น เราจะสามารถสร้างเอฟเฟกต์การเปลี่ยนหน้าที่สวยงามได้โดยไม่ต้องใช้เฟรมเวิร์กหน้าเดียวและไม่ต้องดาวน์โหลดแอพทั้งหมดครั้งแรกจำนวนมาก ภาพเคลื่อนไหวแบบเลื่อน ภาพเคลื่อนไหวแบบเลื่อนจะทำงานในตำแหน่งเลื่อนของผู้ใช้ แทนที่จะทำงานเมื่อเวลาผ่านไป ทำให้เป็นโซลูชั่นที่ยอดเยี่ยมสำหรับการเล่าเรื่องและทัวร์ชมผลิตภัณฑ์ บางคนใช้มันเกินเลยไปหน่อย แต่เมื่อใช้งานได้ดี นี่อาจเป็นเครื่องมือออกแบบที่มีประสิทธิภาพมากและสามารถช่วยกำจัดไลบรารี่ต่างๆ เช่น: ScrollReveal, GSAP Scroll หรือWOW.js การเลือกที่ปรับแต่งได้ การเลือกที่ปรับแต่งได้นั้นเป็นองค์ประกอบ

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free