Size: a a a

2020 December 26

A

Arushwl in Svelte [svelt]
Pavel 🦇 Malyshev
так я и говорю что жизненный цикл компонента нельзя пропатчить. впрочем как и элемента
Да, реадонли... но мне ток получать. Неверно сформулировал про управление...
источник

PM

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

1) можно получить лайф-сайкл дом элемента:

<div use:action></div>


2) можно дать экшену возможность читать стейт компонента и его обновления (фактически props down):

<div use:action={state}></div>


3) можно дать экшену инициировать некоторые действия внутри компонента, включая изменение стейта, через ивенты (фактически events up):

<div use:action={state} on:something={doSomething}></div>
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
кстати, до всеобщей ненависти к this в свелт 2 функция экшена запускалать в контексте компонента, поэтому можно было делать так:

function action(node) {
   ...
   this.set({ state });
}
источник

A

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

1) можно получить лайф-сайкл дом элемента:

<div use:action></div>


2) можно дать экшену возможность читать стейт компонента и его обновления (фактически props down):

<div use:action={state}></div>


3) можно дать экшену инициировать некоторые действия внутри компонента, включая изменение стейта, через ивенты (фактически events up):

<div use:action={state} on:something={doSomething}></div>
Ес
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
я предлагал еще при проектировании свелт 3 оставить эту возможность,но this это плохо сказали
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
поэтому теперь только ивенты
источник

A

Arushwl in Svelte [svelt]
Pavel 🦇 Malyshev
я предлагал еще при проектировании свелт 3 оставить эту возможность,но this это плохо сказали
А, это можно было б внутри экшена вешать стейт?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Arushwl
А, это можно было б внутри экшена вешать стейт?
так через this.set() и было можно. сейчас можно только отстреливать ивент, передавать в detail какой-то payload и дальше в коллбеке компонента как-то менять стейт
источник

A

Arushwl in Svelte [svelt]
Изолировали и занативили, как обычно
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Arushwl
Изолировали и занативили, как обычно
не совсем, просто типа чтобы не было инверсии контроля в плохом смысле
источник

A

Arushwl in Svelte [svelt]
Так возвращаясь к моему кейсу... как же всё таки построить мостик targetFromObserver > elementIdInComponent ?
источник

A

Arushwl in Svelte [svelt]
Pavel 🦇 Malyshev
не совсем, просто типа чтобы не было инверсии контроля в плохом смысле
Тем более, что он невозможен в случае с евентами🤔
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Arushwl
Тем более, что он невозможен в случае с евентами🤔
так у тебя в ивенте же есть target
источник

A

Arushwl in Svelte [svelt]
Pavel 🦇 Malyshev
так у тебя в ивенте же есть target
Есть. Но по сути фильтрация происходит нативно по наличию класса внутри обсервера, а мне над это дело подружить с id в массиве снаружи
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
<section 
  use:intobserver={loaded}
  on:intersection={ (e) => e.target.classList.add('my-class') }
>
источник

A

Arushwl in Svelte [svelt]
Pavel 🦇 Malyshev
<section 
  use:intobserver={loaded}
  on:intersection={ (e) => e.target.classList.add('my-class') }
>
Пишет target not defined... аааа сорян... не то понял
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
ну да это ивент стандартный, там всегда есть target
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
только я не понимаю что значит подружить с id в массиве?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
нужно собрать id элементов которые отфильтровал обсервер или что?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
вообще может проще сформулировать точную задачу?
источник