Стоит ли передавать узлы json или dom между компонентами? - PullRequest
0 голосов
/ 10 апреля 2019

Я использую перехватчики useContext и setState для совместного использования массива аудиотреков на моем сайте.У меня есть несколько компонентов списка воспроизведения, которые могут добавлять / удалять дорожки в глобальный список воспроизведения, а также обертку для аудиоэлемента, которая может, например, извлекать следующую дорожку по окончании текущего.

Все списки воспроизведения используют один и тот же компонент.Каждый трек - это просто <tr> с <td> s, содержащим id, title, url и т. Д.Я генерирую их, используя json.

Теперь мой вопрос: что я должен передать в своих крючках?Потому что я вижу по крайней мере 3 варианта ... Я мог бы передать

  • , передавая track_id, кажется наиболее эффективным, но ... но всякий раз, когда мне нужны данные треков .. например, чтобы получить URL илиrender Мне нужно найти объект, который может быть где-нибудь вложенным в мой json-сервер.

  • прохождение dom-узла кажется неправильным ... но было бы очень легко использовать в случае, если я хочудля рендеринга списка в другом месте.

  • если вы передаете объект json дорожки .. У меня есть все данные, которые мне нужны в любой момент ... но мне как-то нужно прикрепить их ко всем дорожкамузлы dom ... и это опять-таки кажется не правильным ..

Вариант № 1.объект track.json

     {"title":"...","artist":"...","year":"..."}

Вариант № 2.<tr> dom-node

     <tr><td>title</td><td>arist</td><td>year</td></tr>

     key={track_id}

Теперь я, очевидно, хотел бы следовать наилучшей практике и быть максимально эффективным ... поэтому кто-нибудь может направить меня в правильном направлении

1 Ответ

0 голосов
/ 10 апреля 2019

Я думаю, что все будут делать то же самое.Если вы передадите id или json, его все равно нужно будет отрендерить в dom-узле для просмотра, поэтому, когда вы говорите, передаете dom-узел, вы действительно просто передаете строку.Правильно ли я сказал, что независимо от того, что передано, нужно будет пройти через какую-то функцию, чтобы получить песню из бэк-энда?Если так, то мое предложение будет JSON.

...