Андрей
Да не буду я доказывать в этом вопросе что-то, мнениями обменялись уже, выводы сделали. Давайте про реакт лучше )
В моем вопросе нет ничего что доказывать надо. Вы сказали, что есть спека. Покажите её.
Artem
Не вижу, будь другом, скинь ссылку
Cenator 🐈
Да не буду я доказывать в этом вопросе что-то, мнениями обменялись уже, выводы сделали. Давайте про реакт лучше )
Доказывать не надо, нужен пруф спеки, потому что есть информация что спеки нет
rovnyart
Не вижу, будь другом, скинь ссылку
там написано, что вызов setState приводит к ре-рендеру компонента, соответственно, componentDidMount вызывается опять и тд
rovnyart
Посмотри что у тебя при апдейте будет cdm не вызовется
да, точно, пардон, просто render два раза вызовется, я перепутал чуток
Dmitry
Зачем в statefull-components использовать constructor/super, да и еще с this.handler.bind(this)? Весь проект написан без этих штук и все работает нормально
Dmitry
Не используй
Не использую полгода, а почему они в реактовских доках - не пойму
rovnyart
Не использую полгода, а почему они в реактовских доках - не пойму
может не используешь, потому что у тебя @babel/plugin-proposal-class-properties ?😀
Александр
Доказывать не надо, нужен пруф спеки, потому что есть информация что спеки нет
Есть https://www.typescriptlang.org/docs/handbook/ но вы правы спеки таки нет, если речь о каком-то формальном EBNF описании. Признаю себя неправым.
Dmitry
Использую конструктор, т.к. так бабель меньше жаваскрипт генерит
Т.е. ты хочешь сказать что это прямо влияет на финальный размер бандла?
Artem
Использую конструктор, т.к. так бабель меньше жаваскрипт генерит
Это заставляет меня провести завтра тесты...интересно, жуть
Mikhail
Т.е. ты хочешь сказать что это прямо влияет на финальный размер бандла?
Да, но там очень мало, оно того не стоит для конечного приложения
Artem
А что говорит Абрамов Ден на этот счет?)
rovnyart
state = {} - это же не в стандарте пока что, это же надо транспайлить
Mikhail
Я пилю минималистичный uikit, мне разница есть, в среднем приложению +-30 байт на компонент не заметна
rovnyart
это же и есть class fields proposal
Mikhail
это же и есть class fields proposal
А, если просто внутри класса, то да
rovnyart
Удивительно но нет)
https://babeljs.io/repl/#?babili=false&browsers=&build=&builtIns=false&spec=false&loose=false&code_lz=MYGwhgzhAEDC5QGIEsCmIAmECiAPMAtgA4irQDeAUNDdBAC5j1kC8F1tNAdoagFzQA5ACkA9gAsugjjQC-AbhnQlwUVwYAnAK7B6ojQAoAlO041V60aQB0IUQHMDgi5p16Ngo4s6zKvyqCQMAByovBBKOhYeIQkZFScLvTauvrGpmYuVqi2Dk5JKe6e3mb04sgQ1gxMrBlm0DwE_EJiktL1Ckq-skA&debug=false&forceAllTransforms=false&shippedProposals=false&circleciRepo=&evaluate=true&fileSize=false&timeTravel=false&sourceType=module&lineWrap=false&presets=react&prettier=false&targets=&version=7.4.5&externalPlugins= ну даже не знаю, как у тебя это тогда работает) может у тебя preset stage 2)
Dmitry
А что говорит Абрамов Ден на этот счет?)
https://overreacted.io/why-do-we-write-super-props/
rovnyart
на самом деле у нас в проекте вообще просто плагин этот тупо отдельно подключен, но пользуемся все равно конструктором почему-то) но никогда не биндим - это дичь))
i
всем привет, http://prntscr.com/nxnvt1 сделал чтбо ползунок у чата вниз пролистывался, которая отправляешь сообщение, но есть беда, ссылка this.myRef.current не работает/null когда компонент прогрузился впервый раз
i
только после онбновления ссылка появляется
i
http://prntscr.com/nxnw7v
Timofey
в typescript ближащая альтератнива PropTypes.node какая?
i
тут вроде нельзя вставлять скрины, не? ну типа запрещено в чате
倫太郎
тут вроде нельзя вставлять скрины, не? ну типа запрещено в чате
это экономит время и ресурсы если кидать прямо в чат и не грузить на третий сервис
倫太郎
код лучше кинь отдельно, или в несколько скринов
倫太郎
ничеж невидно
i
блин, оно уменьшает
MVD
Есть какой нибудь аддон для сторибука, который выводит таблицу пропсов компонента ?
i
если конкретнее,
Aliaksandr
@Mramoris, вам уже столько раз рекомендовали сначала читать документацию и гуглить перед отправкой вопроса, что я уже сбился со счета, а ваша аватарка просто примелькалась. Вы так не изучите реакт, не поймёте, как он работает. На ваш вопрос есть ответ в документации по ref'у
i
ок, current получает доступ уже после отрисовки dom
i
и что же мне тогда делать? нужно чтоб сразу полузнок был внизу, при самой первой отрисовке
i
а, да, поставил в componentDidMount
Anonymous
Народ, как сделать так, что бы useEffect выводил в консоль Hello World только при смене пропса? Понимаю что вторым параметром нужно указать [props.data] , но тогда эффект будет выводить в консоль и при первом рендеринге. Я так понимаю тут нужен костыль в виде двух эффектов? первый эффект будет с ,[] который пихнес в state что-то типа firstProps , а второй эффект будет уже нацелен на ,[props.data] котоырй будет сравнивать firstProps и props.data ?
Anonymous
немного не понял, в props.data не известно что будет. пропс по умолчению. может быть undefined , а второй число 777. нужно выолнить эффект даже если придет undefined (если он сменился) надо именно разницу просчитать, т.е. факт смены пропса. жаль нету ничего напоминающее prevProps
Anonymous
Нормальная ли практика хранить предыдущие пропсы в const prevProps = useRef(); ?
Vitaliy
Доброго времени суток, ребят подскажите пожалуйста как навесить в реакте два обработчика на одно событие onClick?
Vitaliy
блин точно спасибо
Anonymous
Ещё используя React.memo можно https://ru.reactjs.org/docs/hooks-faq.html#how-do-i-implement-shouldcomponentupdate
не совсем то , но вроде нашел в доке под мой кейс. Без рефки тут не обойтись https://ru.reactjs.org/docs/hooks-faq.html#can-i-run-an-effect-only-on-updates
Алексей
Ребзя помогите import React, { useReducer } from "react"; import reducer from "../State/Reducer"; let initialState = { count: 50 }; export const StoreContext = React.createContext(initialState); function Store({ children }) { const [state, dispatch] = useReducer(reducer, initialState); //const response = await axios.get('http://jsonplaceholder.typicode.com/posts') const val = { state, dispatch }; return <StoreContext.Provider value={val}>{children}</StoreContext.Provider>; } export default Store; как в initialState поместить результат асинхронной функции (await axios.get)
Ilya
async-connect
Kirill
Ребят, всем привет, такой вопрос. Норм ли вообще инлайново свг вставлять ? Есть допустим 3 навлинка, у каждого внутри есть картинка и текст, и когда активный, то нужно цвет картинки менять. Как лучше всего сделать ?
Алексей
async-connect
а обычной async () => { let r = await axios.get(); return r} уже не хватает???
Ilya
а обычной async () => { let r = await axios.get(); return r} уже не хватает???
Ну я так понял, это для серверного рендеринга? Тогда сервер должен как-то знать, когда ему можно отдавать данные клиенту.
Ilya
И да, обычной в этом случае уже маловато
Nikolai
А зачем лоадер?
Чтобы содержимое свг в код не вставлять, но это кому как нравится конечно
Kirill
Чтобы содержимое свг в код не вставлять, но это кому как нравится конечно
Хм, а каким образом тогда филл делать свгхе, если не вставлять напрямую?
Nikolai
Через className например
Nikolai
Хм, а каким образом тогда филл делать свгхе, если не вставлять напрямую?
В результате в коде у вас будет импорт свг и обёртка над ним, все красиво,с полным контролем. А в бандле уже заинлайнено
Eduard
новые ивенты? нашел в тестах
🦜
Т.е. ты хочешь сказать что это прямо влияет на финальный размер бандла?
Если компоненты писать через function, а не через стрелки, то кода Бабель тоже меньше генерит
Sm•ok
За последние 3 месяца не написал на одного классового компонента
Sm•ok
Пока не пригодилось
Александр
За последние 3 месяца не написал на одного классового компонента
Аналогично, единственный классовый компонент в проектах новых - error boundary