Size: a a a

Clojure — русскоговорящее сообщество

2020 December 27

CD

Camina Drummer in Clojure — русскоговорящее сообщество
Не то чтобы тут точно был ответ на вопрос, но возможно поможет
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Я уже скидывал ссылку на эту статью
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Именно её он и читал
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
Упс
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Более того я ему дал прямой пример на вопрос почему порядок важен
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Постольку поскольку мне кажется очевидным что из этой реализации следуют ограничения о которых и пишут на каждом заборе, нахожу дальнейшее троллингом
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
В конечном итоге Абрамов в самом начале истории с хуками так и сказал "Мы вам решили проблему с винегретом из HOCов и тяжелых классов. Решили так, потому что иначе не смогли". Если Антон считает что в фейсбуке зря свой хлеб едят, пусть предложит альтернативную имплементацию. Бремя доказательства
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Arseniy Lebedev
Более того я ему дал прямой пример на вопрос почему порядок важен
Ну когда есть прямая зависимость: Достань А и на основе А вычисли Б - понятно что порядок важен
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Это называется “зависимость”
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Arseniy Lebedev
В конечном итоге Абрамов в самом начале истории с хуками так и сказал "Мы вам решили проблему с винегретом из HOCов и тяжелых классов. Решили так, потому что иначе не смогли". Если Антон считает что в фейсбуке зря свой хлеб едят, пусть предложит альтернативную имплементацию. Бремя доказательства
Короче Антон виноват что Арсений не знает почему сделали так. И в наказание за то что он посмел усомниться в фейсбуке - пусть покается предложит свою имплементацию
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Я ещё раз вам повторяю, если вы считаете что можно реализовать хуки так, чтобы когда используется только useState порядок был не важен, а когда используется useState и useEffect был важен — на здоровье, сделайте свое
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Arseniy Lebedev
Я ещё раз вам повторяю, если вы считаете что можно реализовать хуки так, чтобы когда используется только useState порядок был не важен, а когда используется useState и useEffect был важен — на здоровье, сделайте свое
Рука лицо
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Переслано от Arseniy Lebedev
const [value, setValue] = useState(null)
useEffect(() => {
 if (value > 5) doSmth()
}, [value])
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Ну тут же явно value используется в замыкании
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Причем тут реализация хуков-то
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
let value = 23;
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
useEffect(() => {
 if (value > 5) doSmth()
}, [value])
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
При том что есть некоторая разница между значением которое вы вернули из стейта и тем что вы каждый раз вновь создаёте в теле функции
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
У меня есть ощущение что вы не понимаете что функциональный компонент объявляется как самая настоящая функция. У него нет никаких макросов, маркеров что он компонент и так далее. Это функция. И композиционные хуки это тоже обычная функция которая использует внутри дефолтные хуки. Я бы очень хотел посмотреть на то, как вы сможете реализовать систему которая позволяет писать вот так без реализации хуков в виде линкед листа c initialState и прочими причиндалами
const useNewHook = (url) => {
 const [data, setData] = useState(null)
 useEffect(() => {
    fetch(url).then(({ data }) => setData(data))
 }, [url, setData])
 return data
}
источник