Уроки React Js - State, состояние компонента и примеры

Поделиться
HTML-код
  • Опубликовано: 29 сен 2024
  • Мы продолжаем курс уроков по React js для начинающих и в этом видео мы рассмотрим состояние компонента. State отвечает за состояние компонента, его можно определять, можно в последствии и изменять с помощью метода setState, все это на примерах я покажу и на практике расскажу.
    Курс «Python для веб-разработки» от SkillFactory: clc.to/tiIJTQ

Комментарии • 124

  • @akuma8865
    @akuma8865 4 года назад +13

    Очень интересные уроки, а можно код в конце каждого урока выложить для просмотра?

  • @mdrama9989
    @mdrama9989 4 года назад +16

    Вместо прописываний кучи байндов можно методы создавать с помощью стрелочных функций и тогда им сразу автоматически this привяжется.

    • @GagikHarutyunyan_dev
      @GagikHarutyunyan_dev 4 года назад

      Хотел то же самое написать. Только у стрелок нету своего контекста и из за этого ссылается на уровнь выше

    • @ThePredsedatel
      @ThePredsedatel 3 года назад

      начал реакт вчера. посмотрел что надо байнд добавить и только шум

  • @artem_bohak
    @artem_bohak Год назад +1

    на 8:32 в this.setState в теле стрелочная функция должна возвращать объект {visibility: !state.visibility}, у меня вопрос, почему мы тут не написали !this.state.visibility? setState хранит в области видимости state и потому нам не надо явно прописывать this.state? Спасибо большое за видео!

  • @ixen80
    @ixen80 2 года назад

    А почему к методам класса надо обращаться через this? а не напрямую.. например increment ... я попробовал не работает.. но почему?

  • @АлександрМорозов-р1х
    @АлександрМорозов-р1х 4 года назад +1

    А привязку контекста нельзя как-то с помощью стрелочных функций разрулить без bind?

    • @happygraymangamer6067
      @happygraymangamer6067 3 года назад

      У меня такой же вопрос, если знаешь ответ подскажи))))

  • @NewDimix
    @NewDimix Год назад

    Ну со state вообще не разобрались, потому что ни слова о том, как использовать state в функциональных компонентах.

  • @jedixtv3362
    @jedixtv3362 4 года назад

    1

  • @TheKirk1989
    @TheKirk1989 11 месяцев назад

    мужик, я понимаю о чем ты говоришь, но ты нихера не можешь объяснять, либо сам не врубаешься , либо думаешь что тебя смотрят исключительно middle react dev-ы

  • @zhenya2350
    @zhenya2350 4 года назад +12

    воу-воу, 3 видео за сутки!
    Алексей, вы куда так разогнались ?
    P.S: Спасибо за твои видео

  • @ВераСудницына-к8г
    @ВераСудницына-к8г 3 года назад +17

    Огромное спасибо от всех тех, кто не особо любит всяческие инструкции и документации =)) После твоих объяснений понятнее)

  • @artservice08
    @artservice08 3 года назад +3

    Посмотрел, но так и не понял зачем bind(this). Вы как-то бегло прошлись по нему. Я пробовал без этой записи и все работает, но зачем тогда она нужна (а раз пишете, то ведь есть логика)?

    • @СлаваКравченко-в5р
      @СлаваКравченко-в5р 3 года назад +1

      ЕСТЬ, в современном учебнике глянь learn.javascript.ru/bind. С помощью bind можно сказать мы создаём другую функцию, в которой this всегда равен тому, что мы в скобки передаём. А так как при передаче в обработчик функции функция вызовется без контекста компонента, если так можно сказать, то нам необходимо его задать явно, например с помощью bind.

  • @zulagwido1309
    @zulagwido1309 4 года назад +19

    Куда ты так торопишься? Мало того, что не успеваешь за твоими словами, так ещё и на качестве твоего кода это отражается. И почему не назвал компоненты как-то по-нормальному? Почему за отступами не следишь - всё скачет туда-сюда. Новички за тобой не успеют.

    • @tehnoblog6430
      @tehnoblog6430 2 года назад

      Да ну, он все хорошо объясняет, хоть я в этом и шарю, просто вспомнить смотрю, дано не работал с реактом , все классно обьясняет, тот кто захочет поймет, есть видосы и хуже где реально тип гонит и не объясняет что к чему

  • @sofkozl
    @sofkozl 2 года назад +11

    Как новичок скажу - все очень понятно! Наконец начинаю выстраивать четкую структуру в голове, что такое реакт и как с ним работать. Большое спасибо!

    • @SNSDfOu
      @SNSDfOu Год назад

      друг, как успехи нау?

    • @reyping6500
      @reyping6500 Год назад

      Нет, тяжело объясняет. Я на прошлом уроке не понял чем отличаются функции даже

  • @primaryworm5
    @primaryworm5 3 года назад +3

    Второй урок: ну вот три спички, мы одну отнимаем, получаем две
    Третий урок: вот коробок, теперь его нет, почему объясню чуть позже

  • @dendenowich4199
    @dendenowich4199 2 года назад +8

    Спасибо вам ! Очень интересные уроки! Намного понятнее стало чем после доков из реакт. Привет из 11.5.2022))

    • @SuprunAlexey
      @SuprunAlexey  2 года назад +5

      Все актуально

    • @Duh280
      @Duh280 11 месяцев назад

      А тебе привет из 24 октября 2023. Надеюсь Реакт тебе до сих пор интересен💪

  • @vladislav.c
    @vladislav.c 4 года назад +11

    Спасибо вам конечно за проделанную работу, но для новичка это сложно.

    • @SuprunAlexey
      @SuprunAlexey  4 года назад +5

      понимание придет!

    • @vladislav.c
      @vladislav.c 4 года назад +2

      @@SuprunAlexey Очень на это надеюсь :)

    • @NewUserThisNewUser
      @NewUserThisNewUser Год назад

      @@vladislav.c как ваши дела с реакт?

    • @vladislav.c
      @vladislav.c Год назад +1

      @@NewUserThisNewUser С реактом как то не пошло. Переключился на VUE. Тут как то всё пошло . Либо с подачей материала повезло, либо сам по себе попроще будет.

    • @frexxx-7
      @frexxx-7 Год назад

      @@vladislav.c устроились ли на работу куда-то?

  • @ВладимирГугин-ш7щ
    @ВладимирГугин-ш7щ 3 года назад +2

    Из видео складывается впечатление как будто реакт делался не для того, что бы упростить процесс, а что бы наоборот - усложнить

    • @SuprunAlexey
      @SuprunAlexey  3 года назад +1

      Та нет

    • @TheMakerdream
      @TheMakerdream 3 года назад +1

      Примеры хорошие. Но их легче на чистом js сделать.

  • @Stankevich
    @Stankevich 4 года назад +31

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

    • @gamerecords_site
      @gamerecords_site 3 года назад

      Практика в помощь )

    • @ricojohn8249
      @ricojohn8249 2 года назад

      изучите Java script, тогда всё станет понятно.

  • @nereonneo
    @nereonneo 4 года назад +3

    а почему пример только на классовых компонентах а не на функциональных

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Yakub Yakubov завтра выйдет на функциональных

    • @Vadimchaa
      @Vadimchaa 2 года назад

      @@SuprunAlexey А где?

  • @dogvscatfunny9956
    @dogvscatfunny9956 Год назад +1

    Не когда тут не поймёшь кто за что отвечает, чушь такую несёт слова не разобрать,

  • @artemadeev7444
    @artemadeev7444 3 года назад +1

    сложно. Надо больше разжевывания. Пойду другое видео искать.

  • @kolya6971
    @kolya6971 4 года назад +3

    Когда будем продолжать делать сайт на Reactjs из подключением библиотек и всего функционала такого как форма отбратной связи??

  • @srt2046
    @srt2046 4 года назад +5

    На этот раз слишком сложно, Алекс. Пожалуйста рассказывай про каждую позицию подробнее

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Вот напишите что именно не понятно, какая строка?

    • @srt2046
      @srt2046 4 года назад +4

      @@SuprunAlexey сам код понятен, но непонятны сами state и props. Что это такое, за что отвечают, какие механизмы. Архитектура непонятна, в общем.
      А так, я постоянный зритель твоего канала) всё делаешь очень годно и доступно!

    • @antonsedchenko6332
      @antonsedchenko6332 3 года назад

      @@srt2046 тут скорее нужно больше потренироваться с классами, конструкторами классов и методами классов в js, тогда всё понятнее будет.

  • @aidoskashenov4532
    @aidoskashenov4532 4 года назад +1

    Третий метод надо было назвать не reset а excrement

  • @JanTalan
    @JanTalan Год назад

    отличные уроки коротко без воды .но понятно.респект..у меня когда соединяешь через bind например ..increment = this.increment.bind(this); первая this показывает ошибку ..убираю все нормально..может последние версии ?

  • @МихаилГоляков-е2л
    @МихаилГоляков-е2л 3 года назад +2

    Внатуре четко, спасибо большое, все понятно объяснили

  • @__-np6sr
    @__-np6sr Год назад

    Привет. Подскажи, пожалуйста как плагин для VSCode называется который двумя кликами копипастить текст?

  • @marinakhadieva7816
    @marinakhadieva7816 2 года назад

    Очень не хватает таймкодов и банально ссылок на предыдущий и следующий урок. Не нашла плейлиста на этот курс.

  • @SeniorHuguenot
    @SeniorHuguenot Год назад

    Жаль что я так сильно затянул с изучением реакта, теперь в ускоренном темпе сижу учу его и дипломную переписываю

  • @danyamaslov23
    @danyamaslov23 2 года назад

    У меня не работает последнее приложение с инкрементами и дикриментами, как мне можно прислать фаил или фото на проверку наличия ошибок?

  • @AchtungBaby_87
    @AchtungBaby_87 2 года назад

    этот урок еще актуален? super props...кажется уже просто state = {}

  • @DH-yv8um
    @DH-yv8um Год назад +1

    Для новичка очень тяжело понять такой подход лучше функциональный компонент .

  • @ulianao1875
    @ulianao1875 2 года назад +1

    Отличные уроки, для знающих основы верстки и основы JS все понятно, смотря ваши уроки и параллельно читая документацию все встает на свои места. Grasias )))

  • @АлександрБердышев-с5ы

    Я слышал, что на классах давно никто не делает...

  • @skirrsolo4077
    @skirrsolo4077 2 года назад

  • @nastassia9601
    @nastassia9601 3 года назад +5

    Спасибо за видео, немного сложновато для новичков. Слушала на скорости 0,75. много раз переслушивала, параллельно делала конспект и переписывала коды не только в программу, но и в тетрадь. На одно видео потратила около двух часов. И случилось чудо - всё стало понятным. Спасибо за ваш труд)

  • @AbrorAbdulkasimov-kd5xt
    @AbrorAbdulkasimov-kd5xt Год назад

    спасибо за урок классно обяснили

  • @hugo-gf8xe
    @hugo-gf8xe 3 года назад

    Уроки хорошие НО уже старые

  • @oblomoff1
    @oblomoff1 4 года назад +1

    Хороший материал. Спасибо за работу

  • @stivandpolli9117
    @stivandpolli9117 3 года назад +1

    Спасибо. Хороший урок.

  • @Vitalya65
    @Vitalya65 2 года назад

    Добрый день, подскажи пожалуйста. Если мы добавим к нашим сгенерированным - кнопку для того чтобы удалять строку. Как её реализовать ? textdel text

  • @SunriseBusinessClub
    @SunriseBusinessClub 4 года назад

    Что за чушь с точкой с запятой в новом JS. Уже давно можно выбирать с ; или без.

  • @callmeromashka
    @callmeromashka 3 года назад

    Чел можно было сделать пример ещё интересней не используя Условия можно было выводить или обновлять данные через . innerHTML ну или на скорости это сказывается ?

  • @lordunitaz
    @lordunitaz 3 года назад

    Я зеленый и только учусь, но зачем подобным образом писать стейты с конструкторами, если стейт и его изменение можно определить через React.useState ? Синтаксис куда проще.

  • @HilloSecond
    @HilloSecond 2 года назад

    Предположим у нас в state массив объектов. Вопрос, нам нужно конструировать абсолютно новый массив объектов с новым свойством, или мы можем изменить только нужное нам свойство в нужном объекте?

  • @yuliasilber2123
    @yuliasilber2123 2 года назад

    Спасибо за видео.
    Только мне совсем понятно, зачем использовать bind(this) в примере с именем..?

  • @igordor4576
    @igordor4576 3 года назад

    У меня при клике и появлении надписи кнопка становится маленькой. Кто знает почему?

  • @suhoboy1
    @suhoboy1 3 года назад

    Топовый видос, до конца мне помог понять, как работает state. Но он реально для тех, кто уже немного поработал с ним, нужно больше разжёвывать для новичков. А так спасибо тебе большое!

  • @Vladikslavik
    @Vladikslavik 3 года назад

    Зачем дублировать кнопку при visibility?

  • @inigoloy
    @inigoloy 4 года назад

    Расскажи, пожалуйста, как через Apollo пробрасывать данные в React-компонент из MongoDB.

  • @ITime_shorts
    @ITime_shorts 4 года назад

    Если у меня максимально простой метод. Мне не нужны свойства класса и этот метод я дальше никуда не передаю в другие компоненты, нужно ли мне обязательно его биндить в конструкторе?

    • @gagikkhachatryan3141
      @gagikkhachatryan3141 4 года назад

      Если не делать bind то this не будет указать на твоего класса ( а если более правильнее не будет указать на объекта который был создан с твоего класса ) , то-есть если хочешь достать свойства то должен делать bind, или как уже в комментариях написали, можешь методы создавать с помощью стрелочных функций и не делать никакой bind

  • @antonsedchenko6332
    @antonsedchenko6332 3 года назад +1

    Отличный урок, спасибо!

  • @Jetixxxxxxxxxx
    @Jetixxxxxxxxxx 3 года назад

    Пришел к тебе с официальных доков и не пожалел!

  • @bormanbormanov3323
    @bormanbormanov3323 2 года назад

    Пройдите курс димыча и будет капзда как просто

  • @stormd2902
    @stormd2902 2 года назад +2

    В защиту автора хочу сказать, что из всех видосиков, что я смотрел по теме state, в этом видео все довольно просто и понятно, первый раз было не очень, потом второй раз все стало ясно. Код я прописал, все работает.
    Ребята, чтобы React легко давался, надо знать основы JS и HTML. Автору спасибо за простое и доступное объяснение.

  • @nikita1c
    @nikita1c Год назад

    Просто и информативно. Спасибо за ваши уроки!

  • @artemdme5164
    @artemdme5164 3 года назад

    а как мне сделать так, чтобы счетчик был, например, по модулю 3. Мне же надо тогда в инкременте проверять значение count Не понимаю синтаксис. Ну по любому там иф надо писать, но что писать в ифе непонятно.

    • @ThePredsedatel
      @ThePredsedatel 3 года назад +1

      handleClick = () => {
      this.setState(prevState => {
      return {count: prevState.count + 1}
      })
      }

  • @romanown1361
    @romanown1361 4 года назад

    все конечно хорошо. но в 2020 году bind писать при наличии стрелочных функций как-то не очень. а для начинающих что это понять что то одинаково, но все же лучше сразу запоминать как более прогрессивно.

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      У всех своё мнение

  • @imkaufimka8642
    @imkaufimka8642 4 года назад

    Может кто-то сможет объяснить. В state есть св-во color, могу ли я его менять не через setState, а через this.state.color : ...?

    • @antonsedchenko6332
      @antonsedchenko6332 3 года назад

      Не изменяйте состояние напрямую
      !
      В следующем примере повторного рендера не происходит:
      // Неправильно
      this.state.color = 'red';
      Вместо этого используйте setState():
      // Правильно
      this.setState({color: 'red'});
      Конструктор - это единственное место, где вы можете присвоить значение this.state напрямую.

  • @denissavast
    @denissavast Год назад

    Огромное благодарю !

  • @ok_kov
    @ok_kov 2 года назад

    а как сделать, чтоб при значении state=0 и нажимая на кнопку decrement не разрешать отрицательные значения?

  • @bugaga8144
    @bugaga8144 2 года назад

    Спасибо, кратко и понятно

  • @НиколайСеврук-ф7в
    @НиколайСеврук-ф7в 4 года назад

    А какая у тема тема в Sublime Text для Css/html/js? Мне она очень понравилась, буду рад если напишешь название.

    • @Алексей-п9л6н
      @Алексей-п9л6н 4 года назад

      Вообще-то на видео Visual Studio Code, тема похожа на Dark(Visual Studio)

  • @КириллШелдер
    @КириллШелдер 3 года назад

    Зачем bind если можно использовать стрелочную функцию

    • @-web2378
      @-web2378 3 года назад

      Зачем писать на Реакт если можно использовать Vue?) так же и тут.

  • @StasKantor
    @StasKantor 3 года назад

    Спасибо большое за Ваш труд

  • @olegpavlov4329
    @olegpavlov4329 3 года назад

    Хорошая подача материала !!!

  • @ДониёрРахманов-ч1ю
    @ДониёрРахманов-ч1ю 4 года назад

    спасибо помогли

  • @PUBG-sf5en
    @PUBG-sf5en 3 года назад

    У меня такой вопрос можно ли в
    increment() {
    this.setState(state => ({
    count: state.count + 1
    }));
    }
    Прописать вместо + 1, просто ++
    Т.к. я попробовал у меня не сработало
    Мои догадки по этому следующее что ++ это сравнимо с присваиванием +=, а к state.count мы ничего не присваиваем, а просто добавляем 1.
    Мне, конечно, не принципиально писать ++, просто интересно почему так не работает, а если и работает то как?
    P.S. Просто хочу углубиться в понимание React'a. Спасибо)

    • @PUBG-sf5en
      @PUBG-sf5en 3 года назад +1

      И ещё вопрос почему в в случаях проращивания и убывания прописывается функция (стрелочная функция), а в случае обнуления ничего не пишем

    • @-web2378
      @-web2378 3 года назад

      @@PUBG-sf5en для начала надо разобраться почему в одном моменте идёт стрелочная функция, в другом просто setState и внутри объект. Все просто, когда тебе нужно обновить состояние и при этом тебе неважно, что до этого лежало в state, то ты пишешь setState и внутрь объект передаешь. Оно топорно обновит состояние. А вот когда тебе важно, что мол новое состояние зависит от старого, допустим у тебя счётчик... тебе перед тем как менять состояние на новое необходимо знать, а какое же там состояние сейчас, какая цифра в состоянии находится. То тут получается, что ты хочешь изменить состояние, но при этом оно ЗАВИСИТ от старого, то есть ты возьмёшь старое состояние и прибавишь допустим единицу к нему... тогда надо писать setState и передавать Стрелочную функцию, где она принимает аргумент предыдущего состояния.. это я ответил на второй вопрос и частично на первый. В первом вопросе как раз стрелочная функция и аргумент state. Осталось ответить почему + 1 а не ++. Все просто) в переменной state внутри стрелочной функции находится Старое состояние, мы не имеем право напрямую изменять состояние. То есть я не могу писать state++, оно равносильно state=state + 1 , поэтому надо писать state + 1

    • @ВладимирЕфременко-ж6ч
      @ВладимирЕфременко-ж6ч 2 года назад

      count: --state.count
      count: ++state.count
      Все будет работать

  • @indigosay
    @indigosay 4 года назад

    В каких проектах можно обойтись без реакта? С помощью шаблонизатора pug например)

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Посмотрите у меня одно из последних видео что такое реакт

    • @indigosay
      @indigosay 4 года назад

      @@SuprunAlexey да я смотрел, там нет ключевых моментов что такое реакт)

  • @РоманГапонов-л5й
    @РоманГапонов-л5й 3 года назад

    А есть ли репозиторий с кодом?

  • @yevgeniserebriakov7641
    @yevgeniserebriakov7641 4 года назад

    Отлично. Быстро и понятно.

  • @sampearson3752
    @sampearson3752 3 года назад +1

    Бро твои видосы просто бомба для тех кто ищет годные уроки по react .Тебе огромно спасибо . Подписка + Лайк.Еще раз спасибо

  • @Fenjkeee
    @Fenjkeee 4 года назад

    Спасибо за видео.

  • @lackevil3730
    @lackevil3730 4 года назад +1

    Как выучить JQuery ? Спасибо.

    • @bulatm9699
      @bulatm9699 4 года назад +2

      Учи js лучше

  • @KGMelis
    @KGMelis 4 года назад

    всем го it kamasutra

    • @Fenjkeee
      @Fenjkeee 4 года назад +1

      Чел не плохой, но смотреть 100 уроков, нет уж, спасибо

  • @ВалерияНовикова-в8ц

    Спасибо за уроки, все объясняется очень доступно для новичков в работе с React, а кому сложно, нужно подтянуть ООП и JavaScript как минимум, иначе не поймете ничего!!!!