svelte + express (без сапера) - как отправить реквизит / связаться с сервером? - PullRequest
0 голосов
/ 20 февраля 2020

Доброе утро / вечер / ночь

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

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

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

Я хотел бы использовать express для управления маршрутом es и затем визуализируйте приложение svelte, либо с другой страницей / приложением для маршрута, либо с тем же приложением с другими переменными.

Может ли кто-нибудь указать мне правильное направление? Я рассматриваю возможность использования сеансов или сокета , но я понятия не имею, как слушать эту клиентскую сторону, а документация / статьи о svelte редки и все говорят о sapper.

Спасибо!

Вот несколько строк кода, которые я написал в тестовом приложении. Я знаю, что это не так, как вы, но ради любопытства

// --------------server.js
// ...
app.set('view engine', 'hbs')
app.set('views', path.join(__dirname, '../views'))
// Using a view engine on TOP of svelte 
// is certainly a bad choice

app.use(express.static('app/public'))
// to make the svelte compiled .js and .css available

app.get('/test', (req, res) => {
  res.render('home', {user:true}) 
  // I tried to send props like this
  // it did not get the props in svelte, 
  // but what I found is that svelte ADDS itself to the page
  // and does not remove the HBS code, event though it is in the target container
})


edit

Я, наконец, воспользуюсь сапером, спасибо за советы .. Я действительно хотел бы, чтобы они внедрили какое-то промежуточное программное обеспечение svelte, которое позволяет отображать / обслуживать страницы индивидуально (если они, конечно, собраны)

1 Ответ

1 голос
/ 20 февраля 2020

Если вы сделаете это таким образом, разбив ваше веб-приложение на несколько независимых приложений svelte, обслуживаемых с express, то вам нужно будет сохранить состояние (веб-приложения) в бэкэнде или сохранить его в локальном хранилище. в браузере. Вы не можете использовать состояния, предоставляемые хранилищем sveltes (для записи и т. Д. c), потому что они находятся в памяти и уничтожаются при каждом переходе на новую страницу (через express).

Если sapper до магии c, но вы хотите продолжать запускать одностраничное приложение, взгляните на svelte-spa-router . Это не основано на конфигурации.

...