169 похожих чатов

Всем Привет, подскажите почему при ре-рендере род компонента нет ре-рендера

ребенка? Код такой:

<div>
<A><B/></A>
</div>

function A({ children }) {
console.log('A')
const [state, setState] = useState(0)
useEffect(() => {
setState(state => state + 1)
}, [])
return children
}

function B() {
console.log('B')
return null
}

в консоли А, В, А

8 ответов

16 просмотров

https://legacy.reactjs.org/docs/reconciliation.html

Anastasiia-Glushkina Автор вопроса
Denis Deniskov
https://legacy.reactjs.org/docs/reconciliation.htm...

тогда почему в этом коде будет А, В, А, В function App() { const [state, setState] = useState(0) useEffect(() => { setState(state => state + 1) }, []) console.log('App') return ( <div> <A/> </div> ) } function A() { console.log('A') return <B/> } function B() { console.log('B') return null }

Anastasiia Glushkina
тогда почему в этом коде будет А, В, А, В functi...

Потому что у тебЯ перерисовывается <A> и вызывает return <B> это вызывает перерисовку B

Anastasiia-Glushkina Автор вопроса
Denis Deniskov
Потому что у тебЯ перерисовывается <A> и вызывает ...

return children тоже вызывается <B>, почему нет перерисовки?

Anastasiia Glushkina
return children тоже вызывается <B>, почему нет пе...

children не менялся, там ссылка на старый элемент

Anastasiia Glushkina
return children тоже вызывается <B>, почему нет пе...

Потому что вызывается перерисовка А, у тебя в обоих случаях, только в одном случае B у тебя внешняя зависимость, а в другом случае внутряняя, у тебя компонент во втором случае создает новый Б, это вызовет обновление Б ПО сути у тебя два твоих кода так можно записать Код 1 const b=<B /> function A(){ return b; } Код 2 function A(){ return <B /> }

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта