Bạn có thể cài đặt lodash.isequal
dưới dạng một mô-đun duy nhất mà không cần cài đặt toàn bộ gói lodash như vậy:
npm install --save lodash.isequal
Khi sử dụng các mô-đun ECMAScript 5 và CommonJS, sau đó bạn nhập nó như thế này:
var isEqual = require('lodash.isequal');
Sử dụng các mô-đun ES6, điều này sẽ là:
import isEqual from 'lodash.isequal';
Và bạn có thể sử dụng nó trong mã của bạn:
const obj1 = {username: 'peter'};
const obj2 = {username: 'peter'};
const obj3 = {username: 'gregory'};
isEqual(obj1, obj2) // returns true
isEqual(obj1, obj3) // returns false
Nguồn: Tài liệu của Lodash
Sau khi nhập, bạn có thể sử dụng isEqual
hàm trong mã của mình. Lưu ý rằng nó không phải là một phần của đối tượng được đặt tên _
nếu bạn nhập nó theo cách này, vì vậy bạn
không tham chiếu nó với _.isEqual
, nhưng trực tiếp với isEqual
.
Thay thế: Sử dụng lodash-es
Như được chỉ ra bởi @kimamula :
Với webpack 4 và lodash-es 4.17.7 trở lên, mã này hoạt động.
import { isEqual } from 'lodash-es';
Điều này là do webpack 4 hỗ trợ các dụng phụ cờ và lodash-es
4.17.7 và cao hơn bao gồm các cờ (được thiết lập để false
).
Tại sao không sử dụng phiên bản với dấu gạch chéo?
Các câu trả lời khác cho câu hỏi này cho thấy rằng bạn cũng có thể sử dụng dấu gạch ngang thay vì dấu chấm, như vậy:
import isEqual from 'lodash/isequal';
Điều này cũng hoạt động, nhưng có hai nhược điểm nhỏ:
- Bạn phải cài đặt toàn bộ gói lodash (
npm install --save lodash
), không chỉ gói lodash.isequal riêng biệt nhỏ ; dung lượng lưu trữ rẻ và CPU nhanh, vì vậy bạn có thể không quan tâm đến điều này
- Gói kết quả khi sử dụng các công cụ như webpack sẽ lớn hơn một chút; Tôi phát hiện ra rằng các kích thước gói với ví dụ mã tối thiểu
isEqual
trung bình lớn hơn 28% (đã thử webpack 2 và webpack 3, có hoặc không có Babel, có hoặc không có Uglify)