หม้อไอน้ำ Meteor
แอพ Meteor Ready-to-ใช้สำหรับ Blaze + Flowrouter พร้อมฟังก์ชั่นที่มีประโยชน์มากมายเขียนใน ES6
GitHub ที่เก็บ: https://github.com/fen747/meteor-boilerplate
โดย David Panart aka FEN747
เวอร์ชัน 1.1.3
ดูการเปลี่ยนแปลงเวอร์ชัน
อย่าลังเลที่จะแยกที่เก็บนี้
อย่าลืมที่จะแสดงด้วยเช่นกันถ้าคุณคิดว่ามันเจ๋ง!
โครงการสาธารณะโดยใช้หม้อต้มน้ำนี้:
การติดตั้ง
- โคลน repo นี้: git clone https://github.com/fen747/meteor-boilerplate
- เปลี่ยนไดเรกทอรี: CD Meteor-Boilerplate
- ติดตั้งการพึ่งพา NPM: Meteor NPM ติดตั้ง
- สนุก !
- ดู History.md สำหรับข้อมูลเพิ่มเติม
- หัวข้อฟอรัม Meteor
เอกสาร
แพ็คเกจ (/.meteor/packages)
- แพ็คเกจที่มีประโยชน์มากนั้นมีการติดตั้งล่วงหน้าหรือเพียงแค่ต้องไม่มีการติดตั้งในแอปของคุณ
การเปลี่ยนแปลงไปยัง globals (/both/_globals.js)
การอึกทึก
- แอพนี้มี Erasaur: ติดตั้งแพ็คเกจ Lodash และนามแฝงเป็น '_' แทนขีดล่างแทน
- Lodash เป็นที่รู้จักกันว่ามี API เช่นเดียวกับ UndescoreJs แต่มีการแสดงที่ดีขึ้นและคุณสมบัติอื่น ๆ
Meteor.user ()
- ฉัน เพิ่มประสิทธิภาพฟังก์ชั่น Meteor.user ()
- ตอนนี้สามารถใช้กับ สตริงเป็นพารามิเตอร์ไปยังนามแฝง a findone กับผู้ใช้เฉพาะ
- นอกจากนี้คุณสามารถ ผ่านอาร์เรย์ของสตริงเพื่อกรองฟิลด์ที่คุณต้องการโดยอัตโนมัติ เพื่อลดจำนวนการแสดงผลใหม่ / autorun ที่ไร้ประโยชน์
- จริง ๆ แล้วฟังก์ชั่น Meteor.user () เริ่มต้นส่งคืนเอกสารผู้ใช้ทั้งหมดซึ่งหมายความว่าการคำนวณปฏิกิริยาใด ๆ จะถูกทำให้ไม่ถูกต้องหากมีการเปลี่ยนแปลงฟิลด์ใด ๆ ของ DOC ซึ่งอาจแย่มากสำหรับการดีบักและการแสดงโดยเฉพาะบนโทรศัพท์มือถือโดยเฉพาะ
- ใช้แบบนี้:
- meteor.user () // ส่งคืนเอกสารผู้ใช้ปัจจุบันทั้งหมด
- Meteor.User ("auseridstring") // ส่งคืนเอกสารผู้ใช้ที่ระบุทั้งหมด
- Meteor.User (['Field1', 'Field2', ... ]) // ส่งคืนเอกสารผู้ใช้ปัจจุบันที่ผ่านการกรอง
- Meteor.User ("auseridstring", ['field1', 'field2', ... ]) // ส่งคืนเอกสารผู้ใช้ที่ระบุที่กรอง
API ( /นำเข้า /API)
เส้นทาง (/นำเข้า/API/เส้นทาง)
- config.js - ตั้งค่าเส้นทางของคุณ hierachy และทริกเกอร์ที่นี่ ใช้ updateView แทน blazelayout.render เพื่อจัดการกับภาพเคลื่อนไหวการเปลี่ยนแปลงของคุณ
- triggers.js - กำหนดทริกเกอร์ที่นี่
- Route.js - กำหนดเส้นทางของคุณที่นี่
คอลเลกชัน (/นำเข้า/API/คอลเลกชัน)
- จัดเก็บคอลเลกชันทั่วโลกของคุณที่/นำเข้า/API/คอลเลกชัน
- จัดเก็บลูกค้าของคุณเท่านั้นอินสแตนซ์ minimongo ใน./client
- จัดเก็บคอลเลกชันส่วนตัวของคุณใน./เซิร์ฟเวอร์
วิธีการ (/นำเข้า/API/วิธีการ)
- จัดเก็บวิธีการมองโลกในแง่ดีของคุณที่/นำเข้า/API/คอลเลกชัน
- จัดเก็บเมธอดเซิร์ฟเวอร์ของคุณเท่านั้นที่ ./Server
ห้องสมุด ( /นำเข้า /ไลบรารี)
บริบทแอพ (/นำเข้า/ไลบรารี/AppContext)
- การใช้เซสชันหรือตัวแปรที่กำหนดไว้ทั่วโลกไม่ใช่สิ่งที่ดี คุณควรใช้ AppContext เป็น reactiveict แทนเซสชัน
Utilities App (/imports/library/apputilities.js)
- getEmailFromuID (userID) - ใช้สิ่งนี้เพื่อรับจดหมายแรกจากผู้ใช้
- ปลอดภัย (คอลเลกชัน) - ใช้สิ่งนี้เพื่อปฏิเสธสิทธิ์การเขียนทั้งหมดสำหรับผู้ใช้ในการผลิตโดยอัตโนมัติ
- endloadingscreen - ยอดเยี่ยมในการลบหน้าจอโหลดที่คุณสามารถฉีดผ่านแพ็คเกจการฉีดเริ่มต้นของ Arunoda
- playanimation (animationName, elementId, animationtime = 1000) - เล่นภาพเคลื่อนไหวบนองค์ประกอบโดยการเพิ่มคลาสและลบออกโดยอัตโนมัติหลังจาก 'AnimationTime' MS
Blaze Helpers (/imports/library/blazehelpers.js)
- UserConnected - ใช้ Handlebar Helper นี้เพื่อตรวจสอบว่ามีผู้ใช้อยู่หรือไม่
- LineBreakText - tranform n โดยอัตโนมัติของสตริงเป็นองค์ประกอบ BR ใน DOM ใช้กับเครื่องมือจัดฟันสามตัว
- urlify (str) - ทำสตริงที่ถูกต้องเป็น URL เหมาะสำหรับการผ่านชื่อโพสต์ใน URL ตัวอย่างเช่น
- MobileViewSize - ตรวจสอบว่าความกว้างของหน้าต่างน้อยกว่า 601 (ขึ้นอยู่กับการสืบค้นสื่อมาตรฐานของ MaterializECSS)
- GetUserName (UID) - รับชื่อผู้ใช้ตาม UID ของเขา
- เท่ากับ (a, b) - return true คือทั้งสองอาร์กิวเมนต์เท่ากับ
- nequals (a, b) - return true เป็นทั้งข้อโต้แย้งไม่เท่ากับ
- logContext (context = this) - บันทึกบริบทที่ผ่านหรือสิ่งนี้
- getEmailFromuID (userID) - ใช้สิ่งนี้เพื่อรับจดหมายแรกจากผู้ใช้
- Iscordova - Return True ถ้าอยู่บนอุปกรณ์ Cordova
บริบทยูทิลิตี้ (/imports/library/contextutilities.js)
- ฟังก์ชั่นจำนวนมากที่ส่งคืนธงอุก
- isclient, isserver, iscordova, isdevelopment, isproduction
การจัดการ DOM
- CreateDoMelement ({Tag, ClassList, ID, ชุดข้อมูล, InnerHtml}) - ใช้การส่งผ่านนี้เป็นพารามิเตอร์วัตถุที่มีคุณลักษณะที่คุณต้องการกำหนดให้กับองค์ประกอบที่สร้างขึ้น (โปรดอ่านฟังก์ชั่นลายเซ็นเพื่อดูรายละเอียด)
การเขียนโปรแกรมฟังก์ชั่น (/imports/library/funcprog.js)
- ฟังก์ชั่นและนามแฝงของ ES6 สำหรับการเขียนโปรแกรมการทำงาน
- มีประโยชน์จริง ๆ เพื่อให้อ่านง่ายและง่ายต่อการดีบักรหัสดีบัก
สาธารณูปโภค (/imports/library/utilities.js)
- MobileViewSize - ตรวจสอบว่าความกว้างของหน้าต่างน้อยกว่า 601 (ขึ้นอยู่กับการสืบค้นสื่อมาตรฐานของ MaterializECSS)
- urlify (str) - ทำสตริงที่ถูกต้องเป็น URL เหมาะสำหรับการผ่านชื่อโพสต์ใน URL ตัวอย่างเช่น
- TryReach (Object, 'NestedAttribute1', 'NestedAttribute2', ... ) - ฟังก์ชั่นที่มีประโยชน์มากในการนำทางในวัตถุซ้อน
- buildregexp (str) - ตัวสร้าง regexp ง่าย ๆ
- เบนช์มาร์ก (โทรกลับ) - ฟังก์ชั่นพื้นฐานเพื่อตรวจสอบการแสดงของการโทรกลับ
- Unblock (การเชื่อมต่อ DDP) - นามแฝงของ DDP ของสิ่งนี้ unblock ที่ไม่ได้ทำผิดพลาดเมื่อวิธีการไม่มีอยู่จริง
- ISVALIDIMAGEURL (URL) - ตรวจสอบว่า URL ชี้ไปที่ภาพหรือไม่
โมดูล ( /นำเข้า /โมดูล)
หน้าต่างปฏิกิริยา
- window.size - dict ปฏิกิริยาเพื่อปรับขนาดหน้าต่างปฏิกิริยา
- นำเข้าสู่ไคลเอนต์โดยค่าเริ่มต้น
การบันทึก DDP
- ใช้ ddplogging global object เพื่อสลับและปิดการฟังข้อความ DDP บนไคลเอนต์
- นำเข้าสู่ไคลเอนต์โดยค่าเริ่มต้น
Smart Disconnect (/imports/Modules/SmartDisconnect.js)
- การรักษาเซสชันยังมีชีวิตอยู่ในอุกกาบาตค่อนข้างมีค่าใช้จ่ายสูง ใช้ smartdisconnect.start () เพื่อตั้งค่า meteor.status (). สถานะ เป็น `ออฟไลน์ 'เมื่อผู้ใช้ไม่ได้ใช้งานในช่วงเวลาหนึ่ง (เริ่มต้นถึง 300s)
- smartdisconnect.start () ใช้สองพารามิเตอร์เสริม:
- ก่อนอื่นวัตถุเช่นนี้: {TimeBeforedisconnect = 300, ActivateonCordova = true}
- ประการที่สองการโทรกลับที่เรียกว่าก่อนการถอดรหัสเกิดขึ้น
- เครดิตไปยัง MixMaxHq
เริ่มต้น ( /นำเข้า /เริ่มต้น)
ไคลเอนต์ (/imports/startup/client.js)
- เพิ่มเมธอด remverelement (โดย id) ลงในตัวแปรเอกสาร
- เพิ่มฟังก์ชั่นบันทึกไปยังขอบเขตส่วนกลาง มีประโยชน์ในการบันทึกและส่งคืนตัวแปรโดยไม่ต้องเพิ่มบรรทัดใหม่ลงในไฟล์ของคุณเมื่อทำการดีบัก
- การโทรกลับเริ่มต้นมีคุณสมบัติจำนวนมากในการจัดการหน้าจอโหลดที่ฉีดบน Cordova โดยเลื่อนเราเตอร์ init หลังจากโหลดบทบาทและติดตามสถานะการเชื่อมต่อใน AppContext
อินเทอร์เฟซผู้ใช้ ( /นำเข้า /UI)
ส่วนประกอบ (/นำเข้า/UI/ส่วนประกอบ)
- เพิ่มส่วนประกอบที่ใช้ซ้ำของคุณที่นี่
เลย์เอาต์ (/นำเข้า/UI/เลย์เอาต์)
- เพิ่มเทมเพลตเลย์เอาต์ของคุณที่นี่
modals (/imports/ui/modals)
- เพิ่มเทมเพลตโมดอลของคุณที่นี่
หน้า (/นำเข้า/ui/pages)
- เพิ่มเทมเพลตหน้าเว็บของคุณที่นี่
Stylesheets (/imports/ui/stylesheets)
- เพิ่ม CSS / SCSS / SASS / ไฟล์น้อยกว่าที่นี่