Size: a a a

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

2020 May 03

А

Александр in Nuxt.js — русскоговорящее сообщество
т.е. в компоненте или на странице
, async fetch () {
           this.items = await this.$api('controller_name', 'index');
...
и 2 плагина

api-context.client.js
inject('api', async (controller, method, params) => {
       return await context.$axios['$' + (params ? 'post' : 'get')]('/api/' + controller + '/' + method, params);
...

api-context.server.js
inject('api', async (controller, method, params) => {
...
       let api = require('~/api/' + controller);
       let result = await api[method](db, params);
...
источник

D

DreaMinder in Nuxt.js — русскоговорящее сообщество
ну хоть через контроллер. И что это дает кроме повышенной сложности?
источник

D

DK in Nuxt.js — русскоговорящее сообщество
Один сервис,вместо двух?)
*Экономия на спичках*
источник

D

DreaMinder in Nuxt.js — русскоговорящее сообщество
еси дело в скорости то круто было бы увидеть замеры
источник

А

Александр in Nuxt.js — русскоговорящее сообщество
1. пониженную сложность
2. отсутствие лишних звеньев в архитектуре (однако возможности масштабирования остаются)
3. весь код сервера и клиента вместе
4. существенно более быстрый рендеринг SSR, т.к. мы вместо
Nuxt->HTTP->Node(или другой язык)->MySQL(или другая БД)->Node(или другой язык)->HTTP->Nuxt
идём напрямую
Nuxt->MySQL(или другая БД)->Nuxt
источник

D

DreaMinder in Nuxt.js — русскоговорящее сообщество
1, 2 спорно, но допустим, дело вкуса, зависит от кейса

но насчет существенно более быстрого рендеринга, это смелое заявление. Ты делал замеры до и после? Сколько там прироста в миллисекундах?
источник

А

Александр in Nuxt.js — русскоговорящее сообщество
нет, не делал, но тут будет существенно насколько далеко http api
источник

R

RusaXXX in Nuxt.js — русскоговорящее сообщество
Александр
нет, не делал, но тут будет существенно насколько далеко http api
А как нукст можно использовать в качестве сервера? Точнее бэкенда
источник

R

RusaXXX in Nuxt.js — русскоговорящее сообщество
Типа все время чекать isServer?
источник

D

DreaMinder in Nuxt.js — русскоговорящее сообщество
Александр
нет, не делал, но тут будет существенно насколько далеко http api
понятно, зря. Вот в твоем случае апи на том же сервере (еси делать все запросы по хттп). Т.е. задержка примерно 2-5мс. Т.е. в пределах погрешности общего времени рендеринга, сложно такую оптимизацию назвать «существенной»
источник

А

Александр in Nuxt.js — русскоговорящее сообщество
да, можно использовать, всё время чекать не надо
просто 2 плагина, 1 клиентский другой серверный
источник

D

DreaMinder in Nuxt.js — русскоговорящее сообщество
RusaXXX
Типа все время чекать isServer?
есть serverMiddleware или сам нухт может быть поднят поверх нодовского бэкэнда, как мидлвер
источник

D

DreaMinder in Nuxt.js — русскоговорящее сообщество
DreaMinder
понятно, зря. Вот в твоем случае апи на том же сервере (еси делать все запросы по хттп). Т.е. задержка примерно 2-5мс. Т.е. в пределах погрешности общего времени рендеринга, сложно такую оптимизацию назвать «существенной»
я прост 2 года назад тоже над этим экспериметировал
источник

А

Александр in Nuxt.js — русскоговорящее сообщество
DreaMinder
понятно, зря. Вот в твоем случае апи на том же сервере (еси делать все запросы по хттп). Т.е. задержка примерно 2-5мс. Т.е. в пределах погрешности общего времени рендеринга, сложно такую оптимизацию назвать «существенной»
смотри, просто по логике, чтобы выполнить 1 http запрос, надо на стороне апи сервера:
1. принять запрос
2. распарсить и вализировать параметры
3. проверить авторизацию
4. собственно получить данные
5. отправить данные по http

а теперь представь, что у тебя страница собирается из скажем 10 таких запросов, т.е. на каждый запрос выполняются пункты 1-5, а в моём случае, 1 раз выполнили авторизацию и выполнили п.4 10 раз
источник

D

DreaMinder in Nuxt.js — русскоговорящее сообщество
Александр
смотри, просто по логике, чтобы выполнить 1 http запрос, надо на стороне апи сервера:
1. принять запрос
2. распарсить и вализировать параметры
3. проверить авторизацию
4. собственно получить данные
5. отправить данные по http

а теперь представь, что у тебя страница собирается из скажем 10 таких запросов, т.е. на каждый запрос выполняются пункты 1-5, а в моём случае, 1 раз выполнили авторизацию и выполнили п.4 10 раз
это все теория которую я и так знаю, но я слишком часто сталкивался с тем, что теория может расходиться с практикой.

если есть авторизация которую ты делая запросы напрямую пропускаешь, тут уже допускаю что чисто в твоем узком кейсе это может иметь смысл. Но без замеров, просто успокаивая себя что я сэкономил на хттп запросах, я бы в прод такое не выкатывал. Дело твое, конечно…
источник

А

Александр in Nuxt.js — русскоговорящее сообщество
а в чём могут быть минусы такого решения? я их пока не вижу
источник

А

Александр in Nuxt.js — русскоговорящее сообщество
в конце концов, я всегда могу перейти обратно, просто
1. удалив файл api-context.server.js
2. переименовав файл api-context.server.js -> api-context.js
источник

D

DK in Nuxt.js — русскоговорящее сообщество
то что бэкэнд на js-e?))
источник

А

Александр in Nuxt.js — русскоговорящее сообщество
это вопрос? да, бэкэнд на Node получается
источник

D

DreaMinder in Nuxt.js — русскоговорящее сообщество
Александр
в конце концов, я всегда могу перейти обратно, просто
1. удалив файл api-context.server.js
2. переименовав файл api-context.server.js -> api-context.js
ну если так, и ты сам на проекте и не собираешься его передавать никому, то ок. Просто это все выглядит как преждевременная оптимиация без реальных замеров
источник