Ви можете встановити 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
Джерело: документація Лодаша
Після імпорту ви можете використовувати isEqual
функцію у своєму коді. Зауважте, що він не є частиною об'єкта з ім'ям, _
якщо ви імпортуєте його таким чином, тому ви
не посилаєтесь на нього _.isEqual
, а безпосередньо на isEqual
.
Альтернатива: Використання lodash-es
Як вказував @kimamula :
Цей веб- пакет 4 і lodash-es 4.17.7 і новіших версій цей код працює.
import { isEqual } from 'lodash-es';
Це тому, що webpack 4 підтримує прапор sideEffects, а lodash-es
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 або без)