route params
- плохо (но возможно push({name: <name>, params: {...}})
). Если кто-то откроет страничку напрямую - он ничего не увидит.import from
надо чтобы в конечном файле был соответствующий export
(т.е. тот файл тоже должен быть модулем). Простой import
- это просто подключение скрипта как есть, всё равно что загрузка через <script>
.npm
пакеты содержат разные версии дистрибутивов под разные способы подключения. Надо посмотреть куда указывает module
(а не main
) в package.json
и именно этот файл можно будет подключать через import from
.module
в package.json
нет - значит библиотека не поддерживает современные es модули, увы, и придётся её использовать по-старинке(хотя лучше проверить глазами js файлы, изредка забывают указать). Именно такая ситуация наблюдается с lodash
, однако есть либа lodash-es
, которая решает эту проблему.main
в package.json
). Но из коробки без соответствующих либ они уже работать не будут. Win + R
, cmd
, ping habr.com -l 1000 -t
. Object.create(null)
) вместо Map
- работа с ним на порядок быстрее.Map
соответствует порядку добавления и не может быть изменен постфактум. Вам следует для сортировки получить из Map
массив, отсортировать, и либо создать новый Map
из оного, либо заново добавить все значения в исходный, предварительно тот очистив. Map
заранее с пустыми значениями - перезапись не меняет порядок. body
в зависимости от присутствия компонента на странице(я правильно понял?) - делай это руками: добавляй body
класс на created
, убирай на destroyed
. type ClearIndex<T> = {
[ P in keyof T as string extends P ? never : P ] : T[P]
};
class FOO implements ClearIndex<Service_FOO > {
methodFoo() {}
}
Record<string, () => void>
имеет "index signature", т.е. заявляет, что обращение по любому ключу string
вернёт () => void
. Service_FOO
расширяет этот тип(а не сужает), потому Service_FOO
имеет ту же index signature и уточнённый конкретный метод. this.$refs.child.$refs.childOfChild
.alias: {
'@component-1': {
'site1': path.resolve(__dirname, './site1/component-1.vue'),
'site2': path.resolve(__dirname, './site2/component-1.vue'),
}[process.env.TARGET]
}
import Component1 from '@component-1';
<component :is="var"/>
. list2
никак не связан с item
в отличие от testList
. В list2
у вас должны лежать не цифры а объекты с данными, по которым будет строиться соответствующий item
, сами же item'ы должны быть перечислены через v-for
, чтобы когда list2
менялся - менялся и их порядок.