คุณสามารถติดตั้ง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
ฟังก์ชันในโค้ดของคุณได้ โปรดทราบว่ามันไม่ได้เป็นส่วนหนึ่งของวัตถุชื่อ_
ถ้าคุณนำวิธีนี้เพื่อให้คุณ
ไม่อ้างอิงกับแต่โดยตรงกับ_.isEqual
isEqual
ทางเลือก: การใช้ lodash-es
ตามที่ระบุไว้โดย@kimamula :
ด้วยwebpack 4 และlodash-es 4.17.7 ขึ้นไปโค้ดนี้ใช้งานได้
import { isEqual } from 'lodash-es';
เนื่องจากwebpack 4 สนับสนุนค่าสถานะlodash-es
sideEffects และ 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)