импорт {fn1} из 'lib' против импорта fn1 из 'lib' - PullRequest
0 голосов
/ 25 июня 2019

Я импортирую несколько функций из lodash, и мой коллега говорит мне, что лучше импортировать каждую функцию отдельно, чем импортировать их как группу.

Текущий метод:

import {fn1, fn2, fn3} from 'lodash';

Предпочтительный метод:

import fn1 from 'lodash/fn1';
import fn2 from 'lodash/fn2';
import fn3 from 'lodash/fn3';

Она считает, что последний импортирует меньше кода, поскольку он не импортирует всю библиотеку lodash.

Это тот случай?

Ответы [ 3 ]

2 голосов
/ 25 июня 2019

То, что вы хотите (и что предпочитаете), называется встряхивание дерева :

Потрясение дерева - это процесс удаления неиспользуемого кода во время процесса связывания.

Правильный способ сделать это и использовать встряхивание дерева:

import foo from 'lodash/foo' // <-- only import `foo`

Этот не будет дрожание дерева:

import { foo } from 'lodash'

или , очевидно, так:

import _ from 'lodash' 

Поддержка этого синтаксиса была реализована в Lodash v4.

Вы можете прочитать подробнее здесь

1 голос
/ 25 июня 2019

Исходя из источников, которые я могу найти, import x from y; импортирует экспорт по умолчанию из y, называя его x в вашем файле.

Итак, ваш предпочтительный метод - импорт экспорта по умолчанию 3 раза с 3 разными именами переменных ...

Является ли предпочтительный метод работает на производстве?

Источники:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

https://medium.com/javascript-in-plain-english/javascript-modules-for-beginners-56939088f7d9

0 голосов
/ 25 июня 2019

Я верю, что import {fn1, fn2, fn3} from 'lodash'; является правильным способом импорта различных экспортов модуля, однако, я думаю, что было бы лучше использовать этот способ

    import {
      fn1, 
      fn2, 
      fn3
    } from 'lodash';

, поскольку легче удалить любой изих, если это больше не требует

...