คำถามติดแท็ก mixins

16
มิกซ์อินคืออะไรและทำไมจึงมีประโยชน์
ใน " Programming Python " Mark Markz พูดถึง "mixins" ฉันมาจากพื้นหลัง C / C ++ / C # และฉันไม่เคยได้ยินคำศัพท์มาก่อน มิกซ์อินคืออะไร? การอ่านระหว่างบรรทัดของตัวอย่างนี้ (ซึ่งฉันเชื่อมโยงเพราะมันค่อนข้างยาว) ฉันคิดว่ามันเป็นกรณีของการใช้การสืบทอดหลาย ๆ แบบเพื่อขยายชั้นเรียนซึ่งตรงข้ามกับการทำคลาสย่อย 'ที่เหมาะสม' ถูกต้องหรือไม่ เหตุใดฉันจึงต้องการทำเช่นนั้นแทนที่จะใส่ฟังก์ชันใหม่ลงในคลาสย่อย สำหรับเรื่องนั้นทำไมการผสมผสานมิกซ์ / การสืบทอดหลายวิธีจึงดีกว่าการใช้การแต่งเพลง? อะไรคือสิ่งที่แยกมิกซ์อินจากการสืบทอดหลาย ๆ ด้าน? มันเป็นเพียงเรื่องของความหมายหรือไม่?

5
Sass - แปลง Hex เป็น RGBa เพื่อความทึบของพื้นหลัง
ฉันมี Sass mixin ต่อไปนี้ซึ่งเป็นการปรับเปลี่ยนครึ่งหนึ่งของตัวอย่าง RGBaอย่างสมบูรณ์: @mixin background-opacity($color, $opacity: .3) { background: rgb(200, 54, 54); /* The Fallback */ background: rgba(200, 54, 54, $opacity); } ฉันสมัคร$opacityแล้ว แต่ตอนนี้ฉันติดอยู่กับ$colorส่วนแล้ว สีที่ฉันจะส่งเข้ามาใน mixin นั้นจะเป็น HEX ไม่ใช่ RGB ตัวอย่างการใช้ของฉันจะเป็น: element { @include background-opacity(#333, .5); } ฉันจะใช้ค่า HEX ภายในมิกซ์อินนี้ได้อย่างไร

2
Mixins vs. Traits
อะไรคือความแตกต่างระหว่าง Mixins กับลักษณะ? ตามวิกิพีเดียโมดูลทับทิมมีลักษณะเหมือน งั้นเหรอ

7
มรดกทับทิมเทียบกับมิกซ์อิน
ใน Ruby เนื่องจากคุณสามารถรวมมิกซ์อินได้หลายรายการ แต่ขยายได้เพียงคลาสเดียวดูเหมือนว่ามิกซ์อินจะเป็นที่ต้องการมากกว่าการสืบทอด คำถามของฉัน: ถ้าคุณกำลังเขียนโค้ดที่ต้องขยาย / รวมเพื่อเป็นประโยชน์ทำไมคุณถึงทำให้มันเป็นคลาสล่ะ? หรือพูดอีกอย่างทำไมคุณไม่ทำให้มันเป็นโมดูลเสมอไปล่ะ? ฉันคิดได้เพียงเหตุผลเดียวว่าทำไมคุณถึงต้องการชั้นเรียนและนั่นคือถ้าคุณต้องการสร้างอินสแตนซ์ของชั้นเรียน อย่างไรก็ตามในกรณีของ ActiveRecord :: Base คุณจะไม่สร้างอินสแตนซ์โดยตรง มันไม่ควรเป็นโมดูลแทนหรือ?

2
การใช้ส่วนผสมและส่วนประกอบสำหรับการใช้โค้ดซ้ำใน Facebook React
ฉันเริ่มใช้ Facebook React ในโครงการ Backbone และจนถึงตอนนี้มันก็ไปได้ดี อย่างไรก็ตามฉันสังเกตเห็นความซ้ำซ้อนบางอย่างที่คืบคลานเข้ามาในรหัสการตอบสนองของฉัน ยกตัวอย่างเช่นผมมีวิดเจ็ตแบบฟอร์มเหมือนหลายกับรัฐชอบINITIAL, และSENDING SENTเมื่อกดปุ่มฟอร์มจะต้องได้รับการตรวจสอบความถูกต้องมีการร้องขอและจากนั้นสถานะจะถูกอัพเดต สถานะถูกเก็บไว้ใน React this.stateแน่นอนพร้อมกับค่าฟิลด์ ถ้าสิ่งเหล่านี้เป็นมุมมอง Backbone ฉันจะดึงคลาสพื้นฐานที่เรียกว่าFormViewแต่ความประทับใจของฉันคือ React ไม่รับรองหรือสนับสนุนคลาสย่อยเพื่อแชร์ตรรกะมุมมอง (แก้ไขฉันถ้าฉันผิด) ฉันเคยเห็นสองวิธีในการใช้โค้ดซ้ำใน React: Mixins (เช่นLinkedStateMixinที่มาพร้อมกับ React); ส่วนประกอบของคอนเทนเนอร์ (เช่นreact-infinite-scroll ) ฉันถูกต้องหรือไม่ที่ mixins และ container ต้องการสืบทอดใน React? นี่เป็นการตัดสินใจออกแบบโดยเจตนาหรือไม่? การใช้มิกซ์อินหรือส่วนประกอบคอนเทนเนอร์สำหรับตัวอย่าง "วิดเจ็ตฟอร์ม" จากย่อหน้าที่สองเหมาะสมกว่าไหม และนี่ก็เป็นส่วนสำคัญที่มีFeedbackWidgetและJoinWidgetอยู่ในสภาพปัจจุบันของพวกเขา พวกเขามีโครงสร้างที่คล้ายกันbeginSendวิธีการที่คล้ายกันและทั้งสองจะต้องมีการสนับสนุนการตรวจสอบความถูกต้อง (ยังไม่มี)

3
ไวยากรณ์สำหรับเงื่อนไข if / else ใน SCSS mixin
สวัสดีฉันกำลังพยายามเรียนรู้ SASS / SCSS และกำลังพยายาม refactor mixin ของตัวเองสำหรับ clearfix สิ่งที่ฉันต้องการคือให้ mixin ขึ้นอยู่กับว่าฉันส่งความกว้างของ mixin หรือไม่ ความคิดจนถึงตอนนี้ (รหัสหลอกเฉพาะที่ฉันจะรวมมิกซ์อินอื่น ๆ ) @mixin clearfix($width) { @if !$width { // if width is not passed, or empty do this } @else { display: inline-block; width: $width; } } นี่คือสิ่งที่ฉันคิดว่าฉันอาจเรียกมันได้ แต่มันไม่ได้ผล @include clearfix(); หรือ @include clearfix(100%) …


4
การสืบทอดเมธอดคลาสจากโมดูล / มิกซ์อินใน Ruby
เป็นที่ทราบกันดีว่าใน Ruby เมธอดคลาสได้รับการสืบทอด: class P def self.mm; puts 'abc' end end class Q < P; end Q.mm # works อย่างไรก็ตามเป็นเรื่องที่น่าแปลกใจสำหรับฉันที่มันใช้ไม่ได้กับมิกซ์อิน: module M def self.mm; puts 'mixin' end end class N; include M end M.mm # works N.mm # does not work! ฉันรู้ว่าวิธี #extend สามารถทำได้: module X; def mm; puts 'extender' …
97 ruby  mixins 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.