Size: a a a

2020 November 06

VF

Vitaliy Fain in Svelte [svelt]
я забыл совсем
источник

11

1 1 in Svelte [svelt]
просто в примере сначала фильтр, потом сорт.  вот по одному вопросу на каждый
источник

VF

Vitaliy Fain in Svelte [svelt]
спасибо попробую
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexander Ponomarev
товарищи сами его упоминают, если что =)

я вроде явно показал чем он хорош. Зачем сюда скидывать какие-то графики сравнения строк кода? А потом мне тыкать о чем то? =)
пока я от тебя видел только то, чем он плох)
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexander Ponomarev
сравниваете, дак сравнивайте нормально. То что можно делать в реакте свелт никогда не сможет сделать потому что у него не JSX.
вот с этим могу согласиться. естественно рантайм всегда дает больше возможностей чем билдтайм, потому что меньше не известных. с другой стороны а нужно ли оно, чтобы жертвовать ясностью.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Andrey Katrusha
А в сторе кроме как сабскрибшеном низя получить информацию о сторе в другом методе?
const store =function (val) {
    const _store = writable(val);

   return {
         method() {
                const $store = get(store);
                // do something
         },
          ...store
    };
}
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
если я правильно понял
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Vitaliy Fain
А в свелте есть контроль входящих данных при реактивности, нужна последовательность типа before after?
нет. сторы - это примитивные обсерверабл на основе которых ты уже можешь написать практически любое кастомное решение, с контролем последовательности или как угодно. с другой стороны, сторы - это контракт, поэтому для пушей мощи можно брать штуки вроде rxjs и сахар $store будет работать и с ним. по крайней мере на получение данных
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Vitaliy Fain
$: $buffer = $data; $: $sorting <input on:input={ ()=> $buffer = $data.filter(callback) } / $buffer.sort(func(sorting.orderBy)) writeble store    sorting.orderBy = "DESC"  /   <select on:change={e = $sorting.orderBy = e.target.value}><option value="ASC">ASC<option>
сложно понять так, но вроде бы:

const data = writable([]);

const sorting = writable({ orderBy: 'ASC' });

const buffer = derived([ data, sorting ], ($data, $sorting) => {
  return $data.filter(() => {
      // do filtring
  }).sort(() => {
      // do sorting
  });
});
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Vitaliy Fain
$: $buffer = $data; $: $sorting <input on:input={ ()=> $buffer = $data.filter(callback) } / $buffer.sort(func(sorting.orderBy)) writeble store    sorting.orderBy = "DESC"  /   <select on:change={e = $sorting.orderBy = e.target.value}><option value="ASC">ASC<option>
кстати можно просто:

<select bind:value={$sorting.orderBy}>
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
не понял, но кажется в примере есть еще некий текст для фильрации, который не был явным образом показан. типа поискового запроса. это вообще что-то вроде фильтров и поиска для данных с сервера?
источник

VF

Vitaliy Fain in Svelte [svelt]
Спасибо большое, попробую сегодня, это просто тестовый проект с рутиными задачами, на данный момент данные хранятся локально без сервера, но потом хочу дописать фетчинг некоторых данных чтобы модифицировали текущие сохраненные на локалке
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
например, вот типичная задача фильтры + сортировка + запрос к серверу, которую я решаю с помощью сторов + asyncable стора:

const filters = writable({/* any filters */});
const sorting = writable({/* any sorting */});

const data = asyncable(fetchData, null, [ filters, sorting ]);


{#await $data}
  Data is loading....
{:then data}
    // show data
{:catch err}
  Error on fetch: {err}
{/await}
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
<input bind:value={$filters.foo}>
<input bind:value={$filters.bar}>

<select bind:value={$sorting.orderBy}>
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
в fetchData разбираются фильтры и сортировка, применяются к апи и делается fetch запрос
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
data - асинхронный стор, но если данные не асинхронные, а синхронные, например, загруженные заранее/сохраненные локально, тогда простой derived подойдет
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
функцию fetchData хорошо бы  еще дебаунсить
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
если пойти дальше, то можно взять svelte-pathfinder и сразу писать еще в и УРЛ фильтры и сортинг:

<input bind:value={$query.foo}>
<input bind:value={$query.bar}>

<select bind:value={$query.orderBy}>
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
const data = asyncable(fetchData, null, [ query ]);
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
тогда при перезагрузке страницы состояния полей и данных восстановятся автоматически
источник