นี่คือตัวเลข
- นาที + gzip 26k
- gzip 90k
- เดิม 450 + k
และ React ไม่มีคุณสมบัติมากมายในเอกสารประกอบ ทำไมมันใหญ่จัง
ฉันรู้สึกว่าเป็นการใช้งาน DOM ที่มีน้ำหนักเบา แต่ฉันต้องการความแน่ใจ
นี่คือตัวเลข
และ React ไม่มีคุณสมบัติมากมายในเอกสารประกอบ ทำไมมันใหญ่จัง
ฉันรู้สึกว่าเป็นการใช้งาน DOM ที่มีน้ำหนักเบา แต่ฉันต้องการความแน่ใจ
คำตอบ:
React ไม่น้อย! ส่วนที่ใหญ่ที่สุดที่ไม่สามารถเปิดเผยได้ของ React น่าจะเป็นระบบเหตุการณ์ - ไม่เพียง แต่ React ใช้การจัดส่งและการทำให้เกิดเหตุการณ์ของตัวเองเท่านั้น แต่ยังทำให้เหตุการณ์ทั่วไปในเบราว์เซอร์เป็นปกติเพื่อที่คุณจะได้ไม่ต้องกังวลกับมันมากนัก ตัวอย่างเช่นSelectEventPluginเป็น "ปลั๊กอิน" ในตัวซึ่งมีonSelect
เหตุการณ์ที่ทำงานในลักษณะเดียวกันในทุกเบราว์เซอร์
การใช้งานDOM เสมือนจะใช้โค้ดในปริมาณที่เหมาะสมเช่นกัน ใช้ความพยายามอย่างมากในการเพิ่มประสิทธิภาพซึ่งเป็นสาเหตุที่เวอร์ชันที่ไม่ได้รับการปรับปรุงรวมถึงReactPerfซึ่งเป็นเครื่องมือในการวัดประสิทธิภาพการแสดงผล ในการอัปเดต DOM React ยังทำสิ่งอำนวยความสะดวกบางอย่างให้กับคุณเช่นรักษาการเลือกอินพุตและรักษาตำแหน่งการเลื่อนปัจจุบันให้เหมือนเดิม
React ยังมีเทคนิคอื่น ๆ อีกเล็กน้อยที่แขนเสื้อ หนึ่งในสิ่งที่ยอดเยี่ยมที่สุดคือรองรับการแสดงผลคอมโพเนนต์เป็นสตริง HTML ได้อย่างสมบูรณ์แม้ว่าคุณจะไม่มีสภาพแวดล้อมของเบราว์เซอร์ก็ตามดังนั้นคุณสามารถส่งหน้าที่ทำงานได้ก่อนที่ JS จะโหลด
คุณกำลังเปรียบเทียบ React กับอะไร? react-15.0.2.min.js
เป็น43k (gzipped)
แต่ jQuery เป็น 33k ในขณะที่เป็นember-2.6.0.prod.js
363k (also gzipped)
เห็นได้ชัดว่าเฟรมเวิร์กเหล่านี้ไม่ได้ทำสิ่งเดียวกันทุกประการ แต่มันมีความทับซ้อนกันมากดังนั้นฉันคิดว่าการเปรียบเทียบนั้นสมเหตุสมผล
หากคุณกังวลเกี่ยวกับขนาดการดาวน์โหลดฉันจะไม่กังวลมากเกินไปเกี่ยวกับรหัส JS ที่มีส่วนในสิ่งนั้น นี่คือโฆษณาที่ฉันเห็นทางด้านขวาของหน้า Stack Overflow ตอนนี้:
ขนาดการดาวน์โหลดคือ 95k - ฉันจะไม่คิดสองครั้งเกี่ยวกับการรวมรูปภาพแบบนั้นไว้ในหน้าเว็บเพราะ (แม้ว่าฉันจะกังวลเกี่ยวกับประสิทธิภาพ) มักจะมีสิ่งอื่น ๆ ที่เกี่ยวข้องกับประสิทธิภาพมากมายให้แก้ไขซึ่งมีกำไรมากกว่า
ในระยะสั้นฉันไม่คิดว่า React จะใหญ่ขนาดนั้นและขนาดของมันมาจากสิ่งเล็ก ๆ มากมายที่ช่วยคุณได้ คุณอ้างถึง API ขนาดเล็กของ React เป็นเหตุผลว่าโค้ดของ React ควรมีขนาดเล็ก แต่อาจมีคำถามที่ดีกว่าคือ "API ของ React จะง่ายขนาดนี้ได้อย่างไรเมื่อได้รับทุกสิ่งที่ทำเพื่อคุณ"
… แต่นั่นเป็นคำถามที่แยกจากกันโดยสิ้นเชิง :) หวังว่าฉันจะตอบคำถามของคุณ - ยินดีที่จะขยายความหากฉันไม่เข้าใจ
สองสามความคิด .. ฉันมีความกังวลเหมือนกันกับขนาดของมัน แต่หลังจากใช้แล้วไม่ตลกฉันจะใช้มันถ้ามีขนาด 5MB มันดีแค่นั้นเอง ที่กล่าวว่าฉันตัดสินใจที่จะลดการพึ่งพาไลบรารีอื่น ๆ ให้ได้มากที่สุด ฉันใช้ jquery สำหรับสองสิ่ง .. ajax และการตอบสนอง ajax อัตโนมัติและการจัดการคำขอ (beforeSend ฯลฯ ) ที่จะจัดการเมื่อโทเค็นอยู่ในการตอบสนองหลังการเข้าสู่ระบบจากนั้นตรวจสอบให้แน่ใจว่าทุกคำขอของ ajax เพิ่มลงในส่วนหัวการอนุญาตก่อน การส่ง. ฉันแทนที่สิ่งนี้ด้วยจาวาสคริปต์ดั้งเดิมขนาดเล็กสุด ๆ ใช้งานได้ดี นอกจากนี้ฉันพยายามใช้ _underscore ฉันได้แทนที่ด้วย lodash ซึ่งมีขนาดเล็กและเร็วกว่าแม้ว่าตอนนี้ฉันไม่ได้ใช้มันดังนั้นอาจลบออกทั้งหมด
นี่คือบทความหนึ่งจากหลาย ๆ บทความใน Google ที่ฉันพบว่ามีทางเลือกอื่นโดยใช้ JS เนทีฟเหนือ jquery
http://www.sitepoint.com/jquery-vs-raw-javascript-1-dom-forms/