Sie können lodash.isequal
als einzelnes Modul installieren, ohne das gesamte lodash- Paket wie folgt zu installieren :
npm install --save lodash.isequal
Wenn Sie die Module ECMAScript 5 und CommonJS verwenden, importieren Sie sie wie folgt:
var isEqual = require('lodash.isequal');
Bei Verwendung von ES6-Modulen wäre dies:
import isEqual from 'lodash.isequal';
Und Sie können es in Ihrem Code verwenden:
const obj1 = {username: 'peter'};
const obj2 = {username: 'peter'};
const obj3 = {username: 'gregory'};
isEqual(obj1, obj2) // returns true
isEqual(obj1, obj3) // returns false
Quelle: Lodash-Dokumentation
Nach dem Import können Sie die isEqual
Funktion in Ihrem Code verwenden. Beachten Sie, dass es kein Teil eines Objekts mit dem Namen ist, _
wenn Sie es auf diese Weise importieren. Sie
verweisen also nicht mit _.isEqual
, sondern direkt mit isEqual
.
Alternative: Verwenden lodash-es
Wie von @kimamula hervorgehoben :
Mit Webpack 4 und lodash-es 4.17.7 und höher funktioniert dieser Code.
import { isEqual } from 'lodash-es';
Dies liegt daran, dass Webpack 4 das sideEffects- Flag unterstützt und lodash-es
4.17.7 und höher das Flag enthält (das auf gesetzt ist false
).
Warum nicht die Version mit dem Schrägstrich verwenden?
Andere Antworten auf diese Frage legen nahe, dass Sie anstelle eines Punkts auch einen Bindestrich verwenden können:
import isEqual from 'lodash/isequal';
Dies funktioniert auch, aber es gibt zwei kleinere Nachteile:
- Sie müssen das gesamte lodash- Paket (
npm install --save lodash
) installieren , nicht nur das kleine separate lodash.isequal- Paket. Der Speicherplatz ist billig und die CPUs sind schnell, sodass Sie sich möglicherweise nicht darum kümmern
- Das resultierende Bundle bei Verwendung von Tools wie Webpack ist etwas größer. Ich fand heraus, dass Bundle-Größen mit einem minimalen Codebeispiel von
isEqual
durchschnittlich 28% größer sind (ausprobiertes Webpack 2 und Webpack 3, mit oder ohne Babel, mit oder ohne Uglify)