Svelte связывает родительское хранилище из дочернего

Могу ли я использовать директиву привязки внутри дочернего компонента, если переменная, к которой я привязываюсь, является родительским хранилищем? Как это связано с событиями жизненного цикла? Пока дочерний onMount срабатывает до родительского onMount (по крайней мере, когда я сразу создаю дерево новых компонентов), если привязка выполнена успешно, но переменная начинается с нуля, получаю ли я реактивность или нет?


person user1941583    schedule 11.02.2020    source источник
comment
Ты это пробовал? Если да, то работает ли он? Если нет, можете ли вы поделиться REPL? В настоящее время это сбивающий с толку вопрос, на который довольно трудно ответить.   -  person Rich Harris    schedule 12.02.2020
comment
Извините за путаницу.   -  person user1941583    schedule 17.02.2020


Ответы (2)


Предполагая, что я понимаю ваш вопрос, это возможно: https://svelte.dev/repl/0bf7acc3bde9496d930795da34fae251?version=3.18.2

Не знаете, что вы имеете в виду под методами жизненного цикла?

person kevinak    schedule 12.02.2020

Нет необходимости привязываться к родительскому хранилищу, если вам нужна реактивность. Привязки являются реактивными по умолчанию. Поэтому, когда вы привязываете дочернюю переменную к родительской переменной, вы обновляете дочернюю переменную всякий раз, когда изменяется родительская. В отношении к событиям жизненного цикла, учитывая, что в предоставленном вами сценарии пара родитель-потомок создается как единое целое (т.е. родитель еще не смонтирован), то, что дочерний элемент видит из родительской переменной, зависит от того, как она объявлена ​​и как, если есть, он обновляется любым из доступных событий жизненного цикла и/или считывается из любого из событий жизненного цикла. Будьте уверены, заказ:

  • родитель перед обновлением
  • родитель после обновления
  • ребенок перед обновлением
  • ребенок после обновления
  • ребенок на горе
  • родитель onMount

Спасибо всем, что нашли время ответить и предоставить ответ, надеюсь, что этот ответ будет согласован.

Спасибо.

person user1941583    schedule 16.02.2020
comment
Спасибо @ user1941583. Где вы нашли этот приказ? Мне было бы интересно прочитать больше на эту тему. - person mmmm; 04.07.2020
comment
github.com/sveltejs/svelte/pull/2752/files/ - person user1941583; 06.07.2020