207 похожих чатов

Как можно отследить изменение роута? нашел такой вариант computed: {

sectionTopNav() {
const route = this.$router.currentRoute.path.split('/')[1]
this.component = () =>
import(`@/components/${route}.vue`)
},
},
но так как computed - срабатывает только при обновлении страницы
как заставить его делать это при изменении роута?

25 ответов

117 просмотров

watch: { '$route': function (value) { } }

Алекс- Автор вопроса

вот это хрень какая-то :) Используй динамические импорты и выбирай нужный компонент через computed <template> <component v-if="component" :is="component" /> </template> <script> export default { components: { component1: () => import(...), component2: () => import(...), component3: () => import(...), component4: () => import(...), }, computed: { component () { return [ 'component1', 'component2', 'component3', 'component4' ].find(c => c === this.$route.name ) } } } </script>

Алекс- Автор вопроса
Bogdan Saliuk
вот это хрень какая-то :) Используй динамические и...

я так и сделал. просто теперь если есть ссылка на странице, ведущая на роут который не существует - а компонента с таким именем нет, ошибку выдает просто хочу проверять перед импортом, существование компонента в папке

Алекс- Автор вопроса
Bogdan Saliuk
v-if

не помогает, все равно ошибку выдает Reason: Error: Cannot find module './docs.vue'

Алекс
не помогает, все равно ошибку выдает Reason: Error...

const AsyncComponent = () => ({ // The component to load (should be a Promise) component: import('./MyComponent.vue'), // A component to use while the async component is loading loading: LoadingComponent, // A component to use if the load fails error: ErrorComponent, // Delay before showing the loading component. Default: 200ms. delay: 200, // The error component will be displayed if a timeout is // provided and exceeded. Default: Infinity. timeout: 3000 })

Алекс
не помогает, все равно ошибку выдает Reason: Error...

почему не сделать по человечески? :) Ты не знаешь, какие компоненты могут быть вызваны? У тебя прям оооочень много компонентов, которые могут быть вызваны?

Алекс- Автор вопроса
Bogdan Saliuk
почему не сделать по человечески? :) Ты не знаешь,...

дело не в этом. страницы docs не существует(мы же не знаем, какие еще юзер там в адресе наберет), показывается страница 404, но так как в хэдере подключается компонент с таким же именем - вот мне надо чето с этой ошибкой сделать, либо проверять и подключать какой то дефолтный компонент, вместо несуществующего, либо не подключать никакой вот надо как то проверить, а как?

Алекс
дело не в этом. страницы docs не существует(мы же ...

Так я и говорю же. Какая разница, что там вводит юзер в адресную строку? У тебя есть список роутов и список компонентов. Если роут не соответствует ни одному из компонентов - делаешь, что тебе нужно

Алекс
дело не в этом. страницы docs не существует(мы же ...

computed: { component () { return [ 'component1', 'component2', 'component3', 'component4' ].find(c => c === this.$route.name ) } }

Алекс- Автор вопроса
Bogdan Saliuk
computed: { component () { return [ 'c...

опять же, как при таком варианте проверить, на существование компонента?

Алекс- Автор вопроса
Bogdan Saliuk
https://t.me/nuxtjs_ru/168556

он все равно будет выдавать ошибку, если компонент отсутствует

Алекс
опять же, как при таком варианте проверить, на сущ...

Еще раз nuxt не работает с вашей структурой папок. Он собирает все файлы в один и потом его запускает.

Алекс
он все равно будет выдавать ошибку, если компонент...

😄 Ты код мой видел? Ты не подставляешь роут в импорт

Алекс- Автор вопроса
Bogdan Saliuk
😄 Ты код мой видел? Ты не подставляешь роут в импо...

короче я посчитал, у меня 7 динамических блоков в хэдере, и 52 раздела - итого 364 импорта надо написать. и это только в хэдэре будет ) не, спасибо )

Алекс- Автор вопроса
Bogdan Saliuk
почему 364?

потому что для каждого из 52 разделов в эти 7 блоков подбираются то есть, берем 1 раздел надо для него 7 блоков импортнуть, чтобы хэдэр собрать берем второй - так же и так 52 раза

Алекс
потому что для каждого из 52 разделов в эти 7 блок...

52 раза уникальные 7 компонентов шапки?

Алекс- Автор вопроса
Bogdan Saliuk
52 раза уникальные 7 компонентов шапки?

содержимое подключаемых блоков меняется в зависимости от раздела, иногда одинаковое, в разных вариациях, но в целом да, в основном все разные

Алекс
содержимое подключаемых блоков меняется в зависимо...

В таком случае, я бы сказал, что тебе нужно, так или иначе, подготовить 52 шапки и уже их подключать по роуту

Алекс- Автор вопроса
Bogdan Saliuk
В таком случае, я бы сказал, что тебе нужно, так и...

я думал об этом ) но не стал, оформление общее в принципе я тут выше пару дней назад по этой теме задавал вопрос, я думал вообще сделать отдельно все сервисы, в разных репозиториях, но потом решил морду сделать в одном сильно накладно все это поддерживать будет в одиночку ) а вот бэк разделю скорее всего

Алекс- Автор вопроса
Bogdan Saliuk
вот это хрень какая-то :) Используй динамические и...

попробовал этот вариант появилась вспышка при переходе по ссылкам почему то перезагружаются картинки все заново(логотип, и на странице) и js скрипты всегда загружаются по новой предполагаю что переиспользования компонентов не происходит

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта