Size: a a a

2021 March 03

AK

Alex Kulakoff in Svelte [svelt]
я сделал через goto('details')`, создал отдельный путь в `routes`, но каждый раз при выходе из details (goto('.')) происходит перезагрузка страницы
источник

AK

Alex Kulakoff in Svelte [svelt]
Sergey Gornostaev
Пользователь на странице host/path и должен нажать на ссылку чтобы перейти на host/path/component без перезагрузки? Или ты про редирект?
стало понятней?))
источник

SG

Sergey Gornostaev in Svelte [svelt]
Alex Kulakoff
стало понятней?))
Немного. Но непонятно почему перезагружает страницу. Может есть код который инициирует эту перезагрузку?  Сложно говорить об этом без кода. Я не встречал такую проблему
источник

AK

Alex Kulakoff in Svelte [svelt]
goto('.') - на мой взгляд инициализирует перезагрузку. Я начал делать через history.pushState({}, '', 'details') - и происходит так, как я хочу, но хотелось бы сделать инструментами фреймворка
источник

SG

Sergey Gornostaev in Svelte [svelt]
Alex Kulakoff
goto('.') - на мой взгляд инициализирует перезагрузку. Я начал делать через history.pushState({}, '', 'details') - и происходит так, как я хочу, но хотелось бы сделать инструментами фреймворка
Думаю глупость, но попробую / вместо точки. goto работает нормально с details?)
источник

AK

Alex Kulakoff in Svelte [svelt]
Sergey Gornostaev
Думаю глупость, но попробую / вместо точки. goto работает нормально с details?)
/ скорее всего не проканает, т.к. у меня есть baseUrl в саппере. С details работает нормально, когда мы идём вперёд, как только мы уходим с details назад, то показывается лоадер и загружается корень
источник

AK

Alex Kulakoff in Svelte [svelt]
но ещё есть другая проблема - details рендерится не на всю высоту (по дизайну), и на фоне должен быть контент корня. При goto('details') на фоне белая страница
источник

AK

Alex Kulakoff in Svelte [svelt]
в общем, сделал так - на клик по элементу повесил history.pushState({}, '', 'details'), а при закрытии окна с деталями - history.pushState({}, null, '.'). Думал что всё огонь, но теперь при нажатии "Назад" в браузере урл меняется, но окно с деталями остаётся открытым
источник

SG

Sergey Gornostaev in Svelte [svelt]
Alex Kulakoff
/ скорее всего не проканает, т.к. у меня есть baseUrl в саппере. С details работает нормально, когда мы идём вперёд, как только мы уходим с details назад, то показывается лоадер и загружается корень
Лоадер это же не перезагрузка страницы. Такое поведение вполне оправдано. У тебя два разных роута. По возвращению назад срабатывает загрузка контента.

Как вариант делать get параметры вида ?details=detailsId и ловить изменения в сторе
источник

SG

Sergey Gornostaev in Svelte [svelt]
Основная идея не делать два разных роута и сделать отображение деталей в корневом компоненте привязав к изменениям адресной строки
источник

AK

Alex Kulakoff in Svelte [svelt]
ага
источник

AK

Alex Kulakoff in Svelte [svelt]
т.е. у меня будет в корне routes будет файл [detailsId].svelte, в которую будут уходить параметры с урла. Я правильно понял?
источник

SG

Sergey Gornostaev in Svelte [svelt]
Нет
источник

SG

Sergey Gornostaev in Svelte [svelt]
Я не знаю как сделать в сапере подобное. Тебе нужен роут только для клиента. И смотреть за этим роутом нужно только из корневого компонента. Попробуй ещё этот вопрос в саппер группе продублировать
источник

AK

Alex Kulakoff in Svelte [svelt]
окей, спасибо
источник

AP

Alexander Ponomarev in Svelte [svelt]
Марк Танащук
Попросили доработать мною сделанный пред проект, а он 3500 строк кода, так что если он упадет после перехода и ошибку будет сложно отыскать, то будет очень больно
Марк, 3500 строк кода это очень МАЛЕНЬКИЙ проект =)
источник

AK

Alex Kulakoff in Svelte [svelt]
Sergey Gornostaev
Пользователь на странице host/path и должен нажать на ссылку чтобы перейти на host/path/component без перезагрузки? Или ты про редирект?
добавил <svelte:window on:popstate={handleOnPopstate} />, и уже в handleOnPopstate закрываю окно с деталями средствами свелта. Похоже, что это самый оптимальный вариант
источник

AM

Anton Mazhuto in Svelte [svelt]
Доброе утро ребят, а модскажите пожалуйста, может кто разбирается и сталкивался. Я создал библиотеку виджета на светле, собрал esbuild'ом вот по этой статье - https://habr.com/ru/post/541834/ , установил ее в проект на реакте. Инициализировал элементы из нее на странице, а в консоле ошибка. Нужно какой то лоадер для вебпака дополнительный? Или что делать?
источник

AS

Alexey Schebelev in Svelte [svelt]
покажите конфиг esbuild
источник

AM

Anton Mazhuto in Svelte [svelt]
Alexey Schebelev
покажите конфиг esbuild
он, как у Вас в статье
const {build} = require(`esbuild`);
const sveltePlugin = require(`esbuild-svelte`);

// Берем содержимое package.json в виде объекта pkg
const pkg = require(`./package.json`);

// Настраиваем плагин компиляции Svelte файлов
const svelte = sveltePlugin({
   compileOptions:{
       // Все стили будут упакованы вместе с компонентом
       css: true
   }
});

// Собираем IIFE-модуль
build({
   // Откуда и куда собирать модули узнаем в package.json
   entryPoints: [pkg.svelte],
   outfile: pkg.cdn,
   format: 'iife',
   bundle: true,
   minify: true,
   sourcemap: true,
   plugins: [svelte],

   // Задаём имя глобальной переменной для доступа к модулю
   globalName: 'bookingWidget',
})

// Собираем ES-модуль
build({
   entryPoints: [pkg.svelte],
   outfile: pkg.module,
   format: 'esm',
   bundle: true,
   minify: true,
   sourcemap: true,
   plugins: [svelte],

   // Просим не включать в модуль зависимости из разделов
   // dependencies и peerDependencies в файле package.json
   external: [
       ...Object.keys(pkg.dependencies),
       ...Object.keys(pkg.peerDependencies),
   ]
})
источник