SUPER_OLEG_DEV Telegram 53
Привет!

Наконец-то добрался рассказать про релиз Nuxt 3 Release Candidate.

Кстати, апрель был полон новостей про мета-фреймворки: была презентация мета-фреймворка RedwoodJS и интерактивный доклад от Рича Харриса про будущее SvelteKit.

Мне очень интересно, как развиваются Redwood и SvelteKit, но рассказывать всегда стараюсь про что-то, что меня вдохновило.
У Redwood крутые интеграции с GraphQL и Storybook, SvelteKit показывает отличный DX с Vite, Рич предлагает ряд интересных идей.
Но все-равно, в обоих фреймворках очень много спорных концепций, особенно по поводу file-system конвенций именования файлов, и совершенно никаких механизмов для разработки больших и сложных приложений.
Пример таких механизмов, позволяющих разделять приложения на строительные блоки, и разделять ответственность - Dependency Injection и модули, плагины, да даже миддлвары (никогда больше!).

А вот релиз Nuxt очень меня вдохновил, по двум причинам: система модулей и целая экосистема для создания инструментов, унифицированных под разные бандлеры.

Начнем с модулей, но немного издалека.

Фреймворк tramvai дает пользователям возможность создавать модули, благодаря использованию DI. Пример таких модулей, которые отвечают за независимый друг от друга функционал - seo, http-client, cookie, metrics.
Решили делать интеграцию с react-query - создали обертку и модуль, подключение одной строкой кода которого дает пользователю все необходимые возможности для использования.
И так добавляется практически любой функционал.

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

Кстати, очень лаконичный пример модуля Nuxt, добавляющего css link на страницу:
export default defineNuxtModule({
setup (options, nuxt) {
nuxt.options.css.push('font-awesome/css/font-awesome.css')
}
})


tramvai модуль будет более многословным из-за синтаксиса провайдеров и заранее заданной гибкости (можно добавить от инлайн скрипта до мета-тега, и расположить их в один из слотов от начала head до конца body):
@Module({
providers: [{
provide: RENDER_SLOTS,
multi: true,
useValue: {
slot: ResourceSlot.HEAD_CORE_STYLES,
type: ResourceType.style,
payload: 'font-awesome/css/font-awesome.css',
}
}]
})
class FontAwesdomeModule {}


В других фреймворках, возможности намного более примитивны.
Remix предлагает экспортировать свойство links, в Next вообще возможен только прямой импорт файла, а для мета-тегов предлагается решение вида все-в-React.

Идем дальше!
8👎1



tgoop.com/super_oleg_dev/53
Create:
Last Update:

Привет!

Наконец-то добрался рассказать про релиз Nuxt 3 Release Candidate.

Кстати, апрель был полон новостей про мета-фреймворки: была презентация мета-фреймворка RedwoodJS и интерактивный доклад от Рича Харриса про будущее SvelteKit.

Мне очень интересно, как развиваются Redwood и SvelteKit, но рассказывать всегда стараюсь про что-то, что меня вдохновило.
У Redwood крутые интеграции с GraphQL и Storybook, SvelteKit показывает отличный DX с Vite, Рич предлагает ряд интересных идей.
Но все-равно, в обоих фреймворках очень много спорных концепций, особенно по поводу file-system конвенций именования файлов, и совершенно никаких механизмов для разработки больших и сложных приложений.
Пример таких механизмов, позволяющих разделять приложения на строительные блоки, и разделять ответственность - Dependency Injection и модули, плагины, да даже миддлвары (никогда больше!).

А вот релиз Nuxt очень меня вдохновил, по двум причинам: система модулей и целая экосистема для создания инструментов, унифицированных под разные бандлеры.

Начнем с модулей, но немного издалека.

Фреймворк tramvai дает пользователям возможность создавать модули, благодаря использованию DI. Пример таких модулей, которые отвечают за независимый друг от друга функционал - seo, http-client, cookie, metrics.
Решили делать интеграцию с react-query - создали обертку и модуль, подключение одной строкой кода которого дает пользователю все необходимые возможности для использования.
И так добавляется практически любой функционал.

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

Кстати, очень лаконичный пример модуля Nuxt, добавляющего css link на страницу:

export default defineNuxtModule({
setup (options, nuxt) {
nuxt.options.css.push('font-awesome/css/font-awesome.css')
}
})


tramvai модуль будет более многословным из-за синтаксиса провайдеров и заранее заданной гибкости (можно добавить от инлайн скрипта до мета-тега, и расположить их в один из слотов от начала head до конца body):
@Module({
providers: [{
provide: RENDER_SLOTS,
multi: true,
useValue: {
slot: ResourceSlot.HEAD_CORE_STYLES,
type: ResourceType.style,
payload: 'font-awesome/css/font-awesome.css',
}
}]
})
class FontAwesdomeModule {}


В других фреймворках, возможности намного более примитивны.
Remix предлагает экспортировать свойство links, в Next вообще возможен только прямой импорт файла, а для мета-тегов предлагается решение вида все-в-React.

Идем дальше!

BY SuperOleg dev notes




Share with your friend now:
tgoop.com/super_oleg_dev/53

View MORE
Open in Telegram


Telegram News

Date: |

Select: Settings – Manage Channel – Administrators – Add administrator. From your list of subscribers, select the correct user. A new window will appear on the screen. Check the rights you’re willing to give to your administrator. As of Thursday, the SUCK Channel had 34,146 subscribers, with only one message dated August 28, 2020. It was an announcement stating that police had removed all posts on the channel because its content “contravenes the laws of Hong Kong.” Just as the Bitcoin turmoil continues, crypto traders have taken to Telegram to voice their feelings. Crypto investors can reduce their anxiety about losses by joining the “Bear Market Screaming Therapy Group” on Telegram. Add up to 50 administrators The channel also called on people to turn out for illegal assemblies and listed the things that participants should bring along with them, showing prior planning was in the works for riots. The messages also incited people to hurl toxic gas bombs at police and MTR stations, he added.
from us


Telegram SuperOleg dev notes
FROM American