Как я и говорил тема не совсем простая, нужно больше практических примеров для понимания, но рад что вы разобрались. т.к. многие её игнорируют и это очень зря.
Вы прям очень хороши) Столько бесполезных туториалов на ютубе, все однообразные, неинтересные А здесь прям по факту, все четко, ясно и с примерами разными Огонь! Спасибо вам!!
Евгений, спасибо за видеоурок! Единственное, что немного сбивает с толку - вы путаете термины параметр функции и аргумент вызова. Пришлось раз 10 пересмотреть с 5:30 по 5:42, чтобы понять в итоге, что вы имеете в виду. Вы говорите "если в качестве параметра метод ничего не принимает" и тут же в методе объявляете параметр "e", а хотели, скорее всего, сказать что-то типа "если передать в метод render сам метод handleClick (а не его вызов с какими-либо аргументами), то в handleClick в момент клика придёт (в качестве аргумента) объект события".
Если передавать стрелочные функции в пропсах плохая практика, то как лучше делать, если нужно передать аргумент? onClick={this.handleClick.bind(this, 'text')} так?
Приветствую Евгений! Я так понимаю что у объекта MyLink.defaultProps нет доступа к пропсам и стейту класса App. К вам вопрос: - Как можно это организовать? Т.е. передать в пропсы по умолчанию допустим что-то из состояния или что-то из других пропсов?
Есть момент, который я только сейчас заметил: const MyLink =({text, onClick})=>{ return( {text} ) }; В вашем видео функция не возвращает, т.е. нет return. (сразу пишет ошибку) У меня работает только как я выше написал с return. Можете объяснить этот момент?
Часто эта ошибка у меня появляется, это из за стрелочной функции, если мы пишем в ней { }, то должен быть return. (a, b ) => { return a + b; } или же (a, b ) => a + b;
Здравствуйте. Тут функция MyLink объявляется как MyLink = ( { } ) = ( ), место обычного объявления MyLink = ( { } ) = { }, в видео не услышал объяснения этого момента, единственная разница, которую я заметил, что в вашем варианте не надо прописывать return.
Пока самый главный вопрос: зачем это всё? С моей скромной точки зрения пока всё выглядит очень странно: есть JS, в котором реализовано все довольно логично и объемно, написать можно всё что угодно понятным языком, да те же события обрабатываются, как ты говоришь в конце урока, чисто в JS, что считается "правильным", притом есть всякие "правильные" вещи, типа addEventListener, которые позволяют спокойно навешивать несколько событий. И не только к событиям это относится, вообще ко всему, на мой взгляд. И модульность есть, и наследование, и все остальное. Что нам мешает весь этот функционал писать на JS? Но вот появляется супер-пупер-мега-экстра-библиотека JS, в которой синтаксис похож на синтаксис JS, как Майкл Джордан на Джеки Чана, наколочено столько дров, столько новых правил и к ним прикручено столько костылей, что голова идет кругом. А в комментах даже никто не удосуживается спросить: эээ, ребята, а зачем всё это? Короче, пока похоже на дурной сон, ущипните меня)))
React вполне логичен и костылей он не содержит. Касаемо "Что нам мешает весь этот функционал писать на JS?" - это называется "писать" велосипед, т.е. придумывать аналог уже разработанной и проверенной функциональности. А касаемо философии React - это не просто синтаксис. Это компонентный подход к разработке интерфейса, реактивность и работа с VDOM, что оптимизирует и скорость и ресурсы связанные с ререндерингом. Это не просто синтаксис - а большой функционал "под капотом"
Не прописывать в этом кейсе можно. А что если человек столкнётся с такой проблемой на проекте? Я же должен в курсе показать разные варианты того, как нужно поступать
Спасибо! Пока - лучшие уроки что встречал
Спасибо большое за отзыв!
в этом уроке стало понятнее чем в предыдущих что такое пропсы и как их валидировать))
Как я и говорил тема не совсем простая, нужно больше практических примеров для понимания, но рад что вы разобрались. т.к. многие её игнорируют и это очень зря.
Вы прям очень хороши)
Столько бесполезных туториалов на ютубе, все однообразные, неинтересные
А здесь прям по факту, все четко, ясно и с примерами разными
Огонь! Спасибо вам!!
Спасибо за отзыв)
спасибо за видео!
Пожалуйста
С момента как увидел onClick крутился вопрос - про назад к корням. И оп в конце ответ сразу получил))
Да на инлайновый стиль написания функций в HTML похоже. Хотя по сути, это он и есть)
Евгений, спасибо за видеоурок! Единственное, что немного сбивает с толку - вы путаете термины параметр функции и аргумент вызова. Пришлось раз 10 пересмотреть с 5:30 по 5:42, чтобы понять в итоге, что вы имеете в виду. Вы говорите "если в качестве параметра метод ничего не принимает" и тут же в методе объявляете параметр "e", а хотели, скорее всего, сказать что-то типа "если передать в метод render сам метод handleClick (а не его вызов с какими-либо аргументами), то в handleClick в момент клика придёт (в качестве аргумента) объект события".
Согласен. Я уже учёл этот нюанс в будущих курсах
Интересная схема по части использования стрелочной функции в качестве "вешателя" нескольких обработчиков на одно событие (прям как в гКвери например)
Ну это не то что бы схема. Просто в большинстве своём используют именно такой подход)
пока вусё хорошо.
Отлично!
Если передавать стрелочные функции в пропсах плохая практика, то как лучше делать, если нужно передать аргумент?
onClick={this.handleClick.bind(this, 'text')} так?
Если нужно передать аргумент, то идеальный вариант - это создать ещё одну функцию где это и сделать. А сам вызов созданной функции повесить на элемент
Приветствую Евгений!
Я так понимаю что у объекта MyLink.defaultProps нет доступа к пропсам и стейту класса App.
К вам вопрос:
- Как можно это организовать? Т.е. передать в пропсы по умолчанию допустим что-то из состояния или что-то из других пропсов?
Просто передайти эти пропсы внутрь этого компонента.
Есть момент, который я только сейчас заметил:
const MyLink =({text, onClick})=>{
return(
{text}
)
};
В вашем видео функция не возвращает, т.е. нет return. (сразу пишет ошибку)
У меня работает только как я выше написал с return.
Можете объяснить этот момент?
Перепроверьте такой синтаксис:
const MyLink =({text, onClick})=> ({text});
Часто эта ошибка у меня появляется, это из за стрелочной функции, если мы пишем в ней { }, то должен быть return.
(a, b ) => { return a + b; } или же (a, b ) => a + b;
Здравствуйте. Тут функция MyLink объявляется как MyLink = ( { } ) = ( ), место обычного объявления MyLink = ( { } ) = { }, в видео не услышал объяснения этого момента, единственная разница, которую я заметил, что в вашем варианте не надо прописывать return.
Это сокращённый синтаксис стрелочной функции
Здравствуйте, насколько данный плэйлист актуален в 2024 году?
По сути это основы. Синтаксис поменялся, но концепции остались те же
Почему нельзя вешать события через addEventListener как в нативном js ? Это не будет работать или это просто плохая практика ?
И первое и второе
+
👍
Пока самый главный вопрос: зачем это всё? С моей скромной точки зрения пока всё выглядит очень странно: есть JS, в котором реализовано все довольно логично и объемно, написать можно всё что угодно понятным языком, да те же события обрабатываются, как ты говоришь в конце урока, чисто в JS, что считается "правильным", притом есть всякие "правильные" вещи, типа addEventListener, которые позволяют спокойно навешивать несколько событий. И не только к событиям это относится, вообще ко всему, на мой взгляд. И модульность есть, и наследование, и все остальное. Что нам мешает весь этот функционал писать на JS?
Но вот появляется супер-пупер-мега-экстра-библиотека JS, в которой синтаксис похож на синтаксис JS, как Майкл Джордан на Джеки Чана, наколочено столько дров, столько новых правил и к ним прикручено столько костылей, что голова идет кругом. А в комментах даже никто не удосуживается спросить: эээ, ребята, а зачем всё это?
Короче, пока похоже на дурной сон, ущипните меня)))
React вполне логичен и костылей он не содержит. Касаемо "Что нам мешает весь этот функционал писать на JS?" - это называется "писать" велосипед, т.е. придумывать аналог уже разработанной и проверенной функциональности. А касаемо философии React - это не просто синтаксис. Это компонентный подход к разработке интерфейса, реактивность и работа с VDOM, что оптимизирует и скорость и ресурсы связанные с ререндерингом. Это не просто синтаксис - а большой функционал "под капотом"
А зачем мы отменяем дефолное поведение с помощью js, если мы можем вообще его не прописывать ?
Не прописывать в этом кейсе можно. А что если человек столкнётся с такой проблемой на проекте? Я же должен в курсе показать разные варианты того, как нужно поступать
@@YauhenKavalchuk все понял, спасибо большое))