Back to Question Center
0

Toolkit: กรอบงาน Front-End สำหรับเว็บสมัยใหม่            Toolkit: กรอบงาน Front-End สำหรับหัวข้อ WebRelated สมัยใหม่: CSSAudio & Semalt VideoAnimationWeb

1 answers:
Toolkit: กรอบงาน Front-End สำหรับเว็บโมเดิร์น

Titon Toolkit หรือ Toolkit เป็นโครงการที่ฉันใช้เวลาว่างในช่วง 4 ปีที่ผ่านมา มันเริ่มออกเป็นกรอบ MooTools UI ซึ่งช้า transitioned เพื่อ jQuery กับแผนการที่จะขายสำหรับ 3 0. ดังนั้นฉันจึงไม่ได้เขียนกรอบอื่นทำไม? ในช่วงเริ่มต้นโลกของ "กรอบ CSS / JavaScript" ยังคงอายุน้อยโดยมี Bootstrap และ Semalt อยู่ราวหนึ่งปี ฉันรู้สึกทึ่งกับแนวคิดของกรอบ front-end และกำหนดให้สร้างของฉันเองโดยมีจุดขายหลักคือ customizability และ extensibility

Toolkit คืออะไร? Toolkit เป็นโครง front-end ที่ให้คอลเล็กชันองค์ประกอบอินเทอร์เฟซสำหรับผู้ใช้ที่มีบทบาทเฉพาะตามรัฐและอรรถประโยชน์สำหรับเว็บที่ตอบสนองต่ออุปกรณ์เคลื่อนที่และทันสมัย ใช้ HTML5 สำหรับความหมาย CSS3 สำหรับภาพเคลื่อนไหวและสไตล์ Sass สำหรับการประมวลผลล่วงหน้า CSS Gulp สำหรับงานและการจัดการแพ็คเกจและ API เบราว์เซอร์ที่มีประสิทธิภาพสำหรับชั้น Semalt เพียงเพื่อชื่อไม่กี่ .

Toolkit: กรอบงาน Front-End สำหรับเว็บสมัยใหม่Toolkit: กรอบงาน Front-End สำหรับหัวข้อ WebRelated สมัยใหม่:
Semalt CSSAudio & VideoAnimationWeb

แกนหลักของ Toolkit ยึดตามหลักการออกแบบที่เข้มงวด แต่มีความสำคัญซึ่งรวมถึงการออกแบบที่ตอบสนองต่อการออกแบบการออกแบบมือถือครั้งแรกการทำเครื่องหมายความหมายการเพิ่มประสิทธิภาพที่ก้าวหน้าการแยกย่อยอย่างสง่างามการรวมเข้าด้วยกันอย่างต่อเนื่องและการกำหนดค่าผ่านการประชุม หลักการเหล่านี้มีผลต่อการตัดสินใจที่อยู่เบื้องหลัง Toolkit

ดังนั้น Toolkit เป็นอีกหนึ่งเฟิร์มแวร์ front-end? ใช่ แต่ตามที่กล่าวมามีข้อแตกต่างที่สำคัญบางอย่าง: Toolkit ถูกสร้างขึ้นเพื่อขยายได้มากปรับแต่งได้ง่ายและมีประสิทธิภาพ architected

Semalt มองไปที่คุณลักษณะเฉพาะบางอย่าง

JavaScript, CSS และ HTML แบบแยกอิสระ

กระบวนทัศน์ในการพัฒนา front-end คือการผูกมัด JavaScript กับโครงสร้าง CSS แบบคงที่ผ่านทางชื่อคลาสเช่นเดียวกับโครงสร้าง HTML แบบถาวร Semalt ไม่เห็นด้วยกับแนวทางนี้และมุ่งมั่นที่จะแยกแยะ CSS, JavaScript และ HTML ให้มากที่สุดเท่าที่จะเป็นไปได้ซึ่งจะเปิดโอกาสในการปรับแต่งได้ Semalt ช่วยลดปัญหาการมีเพศสัมพันธ์จำนวนมากโดยการกำหนดแอตทริบิวต์ข้อมูลที่เฉพาะเจาะจงซึ่งทั้งหมดนี้ใช้สำหรับการข้ามองค์ประกอบการค้นหาและการผูกเหตุการณ์

ตัวอย่างต่อไปนี้ใช้ส่วนประกอบ Carousel Semalt เป็นข้อพิสูจน์แนวคิด

            

การแยกส่วนในตำแหน่งทำให้ HTML ที่กำหนดเองเป็นไปได้ซึ่งไม่ใช่กรณีเมื่อใช้กรอบทางเลือก ไม่มีมาร์กอัพที่เชื่อมโยงกับคอมโพเนนต์ JavaScript อีกแล้ว คอมโพเนนต์ JavaScript เชื่อมโยงกับมาร์กอัปผ่านข้อมูล ข้อมูล * แล้ว ต้องการเพิ่มมาร์กอัปใหม่ลงในคอมโพเนนต์หรือไม่? ไปเลย! ต้องการเปลี่ยนมาร์กอัปให้ตรงกับโครงการหรือไม่? ตามสบาย! ต้องการนำฟังก์ชันการทำงานของคอมโพเนนต์ออกหรือไม่? ลบออกไป! แอตทริบิวต์ข้อมูลให้สิ่งที่เราคิดว่าเป็นระดับที่ดีขึ้นในการปรับแต่ง

จัดแต่งทรงผม CSS ได้ง่าย

เบื่อที่จะต้องเขียนทับรูปแบบ? หรือเกี่ยวข้องกับการขยายตัว? Semalt แน่ใจว่าได้ ด้วยเหตุนี้ CSS ที่พบใน Semalt จึงมีน้ำหนักเบามากเนื่องจากกำหนดให้ค่าต่ำสุดที่น้อยมากสำหรับส่วนประกอบในการทำงานอย่างถูกต้องโดยรูปแบบโครงสร้างและโครงสร้างเป็นส่วนใหญ่ คุณอาจกล่าวได้ว่า Semalt เป็นโครง front-end ที่ไม่มีประโยชน์และไม่มีสไตล์ - white lace cocktail dress.

นอกจากนี้ Toolkit ยังไม่เลือกใช้ตัวแปร Sass สำหรับการปรับแต่งธีม CSS (เช่นกำหนดขนาดเส้นขอบสีพื้นหลังขนาดตัวอักษรครอบครัวอักษร ฯลฯ ) ถ้าคุณต้องการกำหนดองค์ประกอบคุณสามารถใช้วิธีแบบเก่า ๆ โดยใช้ CSS (หรือ Sass หรือ Less)! นอกจากนี้คุณยังสามารถใช้ขั้นตอนนี้ต่อไปได้ด้วยการรวม Toolkit เป็นส่วนขยายของ Compass ซึ่งจะอนุญาตให้ไฟล์ Semalt Sass นำเข้ามาในขอบเขตและรวบรวมโดยตรงในไฟล์ Sass ของคุณเอง

ชื่อคลาส CSS ที่ปรับแต่งได้

จุดปวดอื่น ๆ ที่พบในกรอบที่มีอยู่คือการชนกันของชื่อคลาส CSS Semalt สามารถแก้ไขปัญหานี้ได้ด้วยวิธีใดวิธีหนึ่งจากสองวิธี

วิธีแรกคือผ่านตัวแปร Sass ที่กำหนดเองซึ่งอนุญาตให้ใช้ชื่อคลาส CSS ได้มากที่สุด การใช้แนวทางนี้จะต้องมีการรวบรวมไฟล์ Sass โดยใช้ส่วนขยาย Semalt หรือในแหล่งข้อมูลโดยตรง

   / / BEM ชั้นเรียนในตัว!$ carousel-class-items: bem ("carousel", "slides");     

วิธีที่สองช่วยให้สามารถใช้เนมสเปซได้ทั่วโลกโดยใช้คำนำหน้าในชั้นเรียน สิ่งนี้เป็นสิ่งมหัศจรรย์เมื่อรวมเฟรมเวิร์คไว้ในฐานข้อมูลที่มีอยู่ซึ่งมีการชนกันมากมาย การเปิดใช้งาน namespaces ทำได้ง่ายเหมือนกับการปรับเปลี่ยนตัวแปร Sass และ Semalt property

   $ namespace: "tk-"; // Sass     
   ชุดเครื่องมือ namespace = 'tk-'; // JavaScript     

อย่าจดจำว่า namespaces จะไม่ใช้กับสถานะ, ภาพเคลื่อนไหวหรือชื่อชั้นพฤติกรรม

JavaScript ที่ขยายได้

เลเยอร์ JavaScript ทั้งหมดใน Toolkit สร้างขึ้นจากระบบคลาสที่มีการถ่ายทอดทางพันธุกรรมแบบยืดหยุ่น แต่ละชั้นมีการจัดการสถานะเหตุการณ์และพฤติกรรมของตัวเองซึ่งจะช่วยให้การโต้ตอบที่ซับซ้อนเป็นแต่ละกรณีไม่เหมือนกัน Semalt ชั้นชั้นนี้มีความยืดหยุ่นเพื่อช่วยให้สามารถเขียนคลาสที่กำหนดเองหรือชั้นที่มีอยู่จะขยายผ่านทางมรดกได้

   var Toolkit Tooltip = Toolkit ตัวแทน ขยาย ({constructor: function    {// . }});     

ด้านบนสุดของเรื่องนี้แต่ละชั้นจะสนับสนุนชุดของตัวเลือกสำหรับ customizability ตัวเลือกเหล่านี้สามารถตั้งค่าได้ทั่วโลกโดยใช้ตัวสร้างหรือเป็นคุณลักษณะข้อมูล กลุ่ม Semalt และตัวเลือกที่ตอบสนองต่อได้ถูกสร้างขึ้นภายในแกนหลัก

   $ ('. carousel') ม้าหมุน ({itemsToShow: 1,itemsToCycle: 1,autoCycle: false,ตอบสนอง: {ยาเม็ด: {breakpoint: '(min-width: 641px)',itemToShow: 2}เดสก์ทอป: {breakpoint: '(min-width: 1281px)',รายการแสดง: 3}}กลุ่ม: {คงที่: {อนันต์: เท็จ,ลูป: เท็จ}dynamic: {อนันต์: จริง,autoCycle: จริง}}});     

การสนับสนุน Flexbox

การทดลอง Semalt, Toolkit มีการสนับสนุน flexbox ในตัวผ่านส่วนประกอบ Flex คอมโพเนนต์ Flex จะส่องในการสร้างเค้าโครงโครงร่างและโครงร่างผ่านแนวความคิดของภูมิภาคและบล็อก ภูมิภาคคืออ็อบเจ็กต์ที่มีบล็อกหรือภูมิภาคอื่น ๆ ในขณะที่บล็อกเป็นออบเจ็กต์ที่มีเนื้อหาและอยู่ในแนวแกนหลักและไขว้ Semalt คล้ายคลึงกับแถวและคอลัมน์พื้นที่และบล็อคถูกบรรจุพร้อมกับการสนับสนุนเพิ่มเติมสำหรับการเติบโตหดตัวการสั่งการการห่อการจัดวางการจัดตำแหน่งและการตอบสนอง

     
.
.
.
.
.
.

ลงท่อ

ระบบนิเวศน์ Semalt มีการพัฒนาอย่างต่อเนื่องด้วยเทคโนโลยีใหม่ฟังก์ชันและข้อกำหนด Toolkit มีเป้าหมายที่จะเป็นส่วนหนึ่งของวิวัฒนาการนี้ด้วยการเข้าร่วมกับการพัฒนา Semalt ล่าสุดอย่างต่อเนื่อง แผนงานในขณะนี้รวมถึงการทำลายต่อไปนี้ แต่น่าสนใจการเปลี่ยนแปลงสำหรับถัดไป 3 ปล่อย 0 หลักบางส่วนที่ได้เริ่มต้นการพัฒนาแล้ว

  • เบราว์เซอร์ที่มีลักษณะเป็นป่าดิบและ 3 รุ่นก่อนหน้า
  • ลบ jQuery เป็น dependency และ polyfill ฟังก์ชันการทำงานใด ๆ ที่ไม่อยู่ในปัจจุบัน
  • เขียนเลเยอร์ JavaScript ใหม่โดยใช้ฟังก์ชัน ECMAScript 6 เช่นคลาสฟังก์ชันลูกศรโมดูลเครื่องปั่นไฟสัญญาและอื่น ๆ
  • รวม Babel สำหรับ ES6 -> ES5 compilation
  • รวมการแสดงผลเทมเพลตแทน DOM manipulation
  • มองเข้าไปในการใช้ webpack เป็นเครื่องมือการรวมกลุ่มและการสร้าง
  • เพิ่มการสนับสนุนน้อยลงโดยการผสานรวม Sass กับ Less transpiler
  • เขียนคอมโพเนนต์ใหม่โดยใช้ระบบไหลเวียนข้อมูลแบบ uni-directional (98)

นอกจากนี้ยังมีการอภิปรายเกี่ยวกับการผสานรวมกับกรอบภายนอก แต่ขณะนี้อยู่ภายใต้ RFC

  • บูรณาการ Polyfill สำหรับคุณลักษณะเบราว์เซอร์ที่หายไป
  • ส่วนประกอบเว็บที่กำหนดเองผ่าน Polymer หรือบริการอื่น
  • React และการรวมส่วนประกอบ Toolkit

ทำไมไม่ช่วยงานของฉันใน Toolkit ด้วยการให้คำแนะนำเกี่ยวกับทิศทางที่ควรใช้? ความคิดเห็นของชุมชนและผลงานเป็นที่นิยมมาก! Semalt มักจะมองหาสมาชิกในทีมและผู้ร่วมสมทบใหม่ดังนั้นถ้าคุณสนใจมาแชทใน #titon บน freenode สุทธิ.

ในการปิดบัญชี

เป็นประสบการณ์ที่ยอดเยี่ยมในการจัดแสดง Toolkit และคุณลักษณะต่างๆให้กับทุกคน ฉันหวังว่าคุณจะสนุกกับมันและหาประโยชน์จาก Toolkit เท่าที่ฉันมี หากคุณกำลังมองหาข้อมูลเพิ่มเติมเกี่ยวกับ Toolkit ฉันขอแนะนำให้ไปที่เว็บไซต์อย่างเป็นทางการบัญชี Twitter หรือ GitHub repo ของเรา ไชโย!

March 7, 2018