คุณสามารถติดตั้งlodash.isequalเป็นโมดูลเดียวโดยไม่ต้องติดตั้งแพ็คเกจlodashทั้งหมดดังนี้:
npm install --save lodash.isequal
เมื่อใช้โมดูล ECMAScript 5 และ CommonJS คุณจะนำเข้าในลักษณะนี้:
var isEqual = require('lodash.isequal');
เมื่อใช้โมดูล ES6 สิ่งนี้จะเป็น:
import isEqual from 'lodash.isequal';
และคุณสามารถใช้ในรหัสของคุณ:
const obj1 = {username: 'peter'};
const obj2 = {username: 'peter'};
const obj3 = {username: 'gregory'};
isEqual(obj1, obj2) // returns true
isEqual(obj1, obj3) // returns false
ที่มา: เอกสาร Lodash
หลังจากนำเข้าคุณสามารถใช้isEqualฟังก์ชันในโค้ดของคุณได้ โปรดทราบว่ามันไม่ได้เป็นส่วนหนึ่งของวัตถุชื่อ_ถ้าคุณนำวิธีนี้เพื่อให้คุณ
ไม่อ้างอิงกับแต่โดยตรงกับ_.isEqualisEqual
ทางเลือก: การใช้ lodash-es
ตามที่ระบุไว้โดย@kimamula :
ด้วยwebpack 4 และlodash-es 4.17.7 ขึ้นไปโค้ดนี้ใช้งานได้
import { isEqual } from 'lodash-es';
เนื่องจากwebpack 4 สนับสนุนค่าสถานะlodash-essideEffects และ 4.17.7 ขึ้นไปรวมถึงแฟล็ก (ซึ่งตั้งค่าเป็นfalse)
ทำไมไม่ใช้เวอร์ชันด้วยเครื่องหมายทับ?
คำตอบอื่น ๆ สำหรับคำถามนี้แนะนำว่าคุณสามารถใช้เครื่องหมายขีดแทนจุดได้เช่นกัน
import isEqual from 'lodash/isequal';
วิธีนี้ได้ผลเช่นกัน แต่มีข้อเสียเล็กน้อยสองประการ:
- คุณต้องติดตั้งแพ็คเกจlodashทั้งหมด(
npm install --save lodash) ไม่ใช่แค่แพ็คเกจlodash.isequalขนาดเล็กที่แยกจากกัน พื้นที่จัดเก็บมีราคาถูกและซีพียูเร็วดังนั้นคุณอาจไม่สนใจเรื่องนี้
- กลุ่มผลลัพธ์เมื่อใช้เครื่องมือเช่น webpack จะใหญ่ขึ้นเล็กน้อย ฉันพบว่าขนาดกลุ่มที่มีตัวอย่างโค้ดขั้นต่ำ
isEqualจะใหญ่กว่าโดยเฉลี่ย 28% (ลองใช้ webpack 2 และ webpack 3 โดยมีหรือไม่มี Babel มีหรือไม่มี Uglify)