Size: a a a

Nuxt.js — русскоговорящее сообщество

2020 April 29

BS

Bogdan Saliuk in Nuxt.js — русскоговорящее сообщество
Andrey Yanusov
Ребят, всем доброго утра!
Вопрос про nuxt-child. Поискав по чату, нашёл вроде подобную проблему у @webzlodimir : https://t.me/nuxtjs_ru/72140
Но, вроде как, решение не было дальше

Ситуация: необходимо сделать url адрес подобного вида для товара:
http://localhost/uslugi/category1/tovar1
На странице uslugi есть выбор категорий (тип левая менюшка), category и к нему товары приходят с сервера
Дело в том, что tovar1 должен открываться как модальное окно (т.е. страница category1 на фоне), поэтому решение - nuxt-child

Пришёл к решению, что на странице uslugi внедряется nuxt-child, которая при выборе определённой категории показывает все товары для выбранной категории и в url добавляется uslugi/category1.
Если пользователь выбирает какой-либо товар, то в url добавляется название товара uslugi/category1/tovar1, поэтому, получается, что это ещё один дополнительный nuxt-child на странице category1

Но это не работает. Если я перехожу на  uslugi/category1 - отображаются товары, всё ок. Но если дальше - uslugi/category1/tovar1 - то показывается только описание товара, но не страницу category1, т.е. первый nuxt-child заменяет путь и по факту получается что-то вроде такого: uslugi/tovar1, второй nuxt-child внедрённый на category1 не отрабатывает.

1) Как можно сделать внутреннюю вложенность с nuxt-child? Либо мб есть иные варианты по реализации такой вложенности url?)

2) Почему nuxt-child работает только для _id.vue? если первую _id.vue заменяю на _category.vue, то nuxt-child не отрабатывает (показано красным)
Но разве не вариант и не логично ли -

--- uslugi.vue
--- uslugi/
------ _category.vue
------ _category/
--------- _tovar.vue


?
источник

AY

Andrey Yanusov in Nuxt.js — русскоговорящее сообщество
Bogdan Saliuk
Но разве не вариант и не логично ли -

--- uslugi.vue
--- uslugi/
------ _category.vue
------ _category/
--------- _tovar.vue


?
тогда не будет отображаться страница category1, когда перейдём в товар. Ведь при попадании на tovar1 - появляется модальное окно сверху существующей страницы
источник

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
Меня смущает что тут index.vue 2 раза прописан для _id
источник

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
И вопрос как можальное окно вызывается
источник

BS

Bogdan Saliuk in Nuxt.js — русскоговорящее сообщество
Andrey Yanusov
тогда не будет отображаться страница category1, когда перейдём в товар. Ведь при попадании на tovar1 - появляется модальное окно сверху существующей страницы
так тебе не нужно разметку прописывать в _category/index.vue, но в _category.vue
источник

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
Теперь вижу, у вас там два динамических роута, ок
источник

AY

Andrey Yanusov in Nuxt.js — русскоговорящее сообщество
Bogdan Saliuk
так тебе не нужно разметку прописывать в _category/index.vue, но в _category.vue
Честно, не совсем понял. В _category.vue всё равно будет nuxt-child с таким подходом?
источник

BS

Bogdan Saliuk in Nuxt.js — русскоговорящее сообщество
Andrey Yanusov
Честно, не совсем понял. В _category.vue всё равно будет nuxt-child с таким подходом?
А почему нет? 😄
источник

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
Как вариант: убрать роутер на товаре, в компоненте категории слушать изменение роута чтобы вывести товар.
источник

BS

Bogdan Saliuk in Nuxt.js — русскоговорящее сообщество
Andrey Yanusov
Честно, не совсем понял. В _category.vue всё равно будет nuxt-child с таким подходом?
источник

AY

Andrey Yanusov in Nuxt.js — русскоговорящее сообщество
Bogdan Saliuk
А почему нет? 😄
Вложенные nuxt-child не сработали у меня, как я писал выше 😩
+ ещё вопрос: nuxt-child же срабатывают, только если есть для страницы: index и _id.vue. Без index.vue у меня вываливалась ошибка

--- uslugi.vue //здесь первый nuxt-child
--- uslugi/
------ _category.vue - здесь второй nuxt-child
------ _category/
--------- _tovar.vue
источник

AY

Andrey Yanusov in Nuxt.js — русскоговорящее сообщество
Stanislav Lashmanov
Как вариант: убрать роутер на товаре, в компоненте категории слушать изменение роута чтобы вывести товар.
Да, тоже хороший вариант)
Если ничего не получится, попробую сделать так. Спасибо!)
источник

BS

Bogdan Saliuk in Nuxt.js — русскоговорящее сообщество
Andrey Yanusov
Вложенные nuxt-child не сработали у меня, как я писал выше 😩
+ ещё вопрос: nuxt-child же срабатывают, только если есть для страницы: index и _id.vue. Без index.vue у меня вываливалась ошибка

--- uslugi.vue //здесь первый nuxt-child
--- uslugi/
------ _category.vue - здесь второй nuxt-child
------ _category/
--------- _tovar.vue
ну и какая же ошибка?
источник

AY

Andrey Yanusov in Nuxt.js — русскоговорящее сообщество
Bogdan Saliuk
ну и какая же ошибка?
-pages/
--- akcii.vue - здесь nuxt-child
--- akcii/
------ _id.vue
------ index.vue

Если нету index.vue с пустым содержимым, то страница не обнаружена, когда переходим на localhost/akcii
источник

BS

Bogdan Saliuk in Nuxt.js — русскоговорящее сообщество
Andrey Yanusov
-pages/
--- akcii.vue - здесь nuxt-child
--- akcii/
------ _id.vue
------ index.vue

Если нету index.vue с пустым содержимым, то страница не обнаружена, когда переходим на localhost/akcii
Ты что-то делаешь не так, эт определённо :)
источник

BS

Bogdan Saliuk in Nuxt.js — русскоговорящее сообщество
Andrey Yanusov
-pages/
--- akcii.vue - здесь nuxt-child
--- akcii/
------ _id.vue
------ index.vue

Если нету index.vue с пустым содержимым, то страница не обнаружена, когда переходим на localhost/akcii
что у тебя в akcii.vue ? Только nuxt-child и всё?
источник

AY

Andrey Yanusov in Nuxt.js — русскоговорящее сообщество
Это проверял)
Если есть рекомендации по улучшению/читабельности кода, всегда открыт :D
источник

AY

Andrey Yanusov in Nuxt.js — русскоговорящее сообщество
-pages/
--- akcii.vue - здесь nuxt-child
--- akcii/
------ _id.vue - здесь модалка в зависимости от url (читает params.id и выводит данные нужной акции)
------ index.vue
- здесь пустой div
источник

BS

Bogdan Saliuk in Nuxt.js — русскоговорящее сообщество
Andrey Yanusov
Это проверял)
Если есть рекомендации по улучшению/читабельности кода, всегда открыт :D
источник

BS

Bogdan Saliuk in Nuxt.js — русскоговорящее сообщество
Andrey Yanusov
Это проверял)
Если есть рекомендации по улучшению/читабельности кода, всегда открыт :D
источник