Рубрики
Без рубрики

Создание компонентов React без этого. # не это

Легко создавать компоненты React, которые полностью лишены этого. Tagged с JavaScript, React, Nothis.

Легко создавать компоненты React, которые полностью лишены это Анкет

Вы можете помнить меня как психопата, который написал переосмысление JavaScript: Полное устранение и искоренение JavaScript это

Ну, я вернулся, и на этот раз у меня есть новый компонент React для вас!

Я подписываюсь на образ мышления Дугласа Крокфорда.

«Есть несколько (функций), которые, как мы знаем, будут плохими. Худший – это класс. Класс был самой запрошенной новой функцией в JavaScript. И все запросы поступили от программистов Java, которые должны программировать в JavaScript и не хотят научиться это сделать. Таким образом, они хотели что -то, похожее на Java, чтобы они могли быть удобнее. Эти люди пойдут на свои могилы, не зная, насколько они мимолетны. ” – Дуглас Крокфорд

И точно так же, как Дуглас Крокфорд обнаружил, что его программы улучшились, когда он перестал использовать это, я обнаружил, что это верно и в моем коде.

«Я был очень удивлен, обнаружив, что мои программы стали лучше. Это не было трудно не использовать это Анкет Это было на самом деле преимущество. Мои программы стали меньше и проще, и вы знаете, это то, что мы все ищем » – Дуглас Крокфорд

Несмотря на это, я понимаю, что нет шансов на то, что я передуманете, потому что …

«Программисты так же эмоциональны и иррациональны, как и нормальные люди. Поэтому, когда решение наконец прибудет, большинство из нас отвергнут его . ” — Дуглас Крокфорд

Это не просто анекдотическое утверждение. Крокфорд продолжает предоставлять реальные примеры, такие как …

“Поколости потребовалось, чтобы согласиться с тем, что Гото была плохой идеей. Мы страстно спорили, эмоционально в течение 2 десятилетий о том, следует ли мы использовать Goto или нет ». — Дуглас Крокфорд

Ну, это это Goto JavaScript, и я понимаю, что он не уйдет в одночасье. Но я хотел бы надеяться, что у нас не займет два десятилетия, как Goto Анкет

React имеет функциональный компонент, но самый популярный способ создания компонентов React – это создание класса и продлить с Реагировать. Компонент и Класс приходит с это Анкет

Затем я спросил себя, что если бы я мог использовать Реагировать. Компонент но без это Анкет И вот как Не это. Компонент был рожден.

Вы заметите Не это. Компонент используется таким образом, знакомым Реагировать. Компонент Анкет Контекст, который вы ранее получили бы через это, доступен в качестве первого аргумента функции.

import React from 'react'
import NoThis from 'nothis-react'

class Counter extends NoThis.Component {
  state = { count: 0 }

  increment(ctx) {
    ctx.setState(state => ({ count: state.count + 1 }))
  }

  render(ctx) {
    return (
      
) } }

Приращение и рендер стали чистыми функциями, действуя только на их входных данных!

Если вы любите разрушать столько же, сколько и я, то теперь станет возможным!

import React from 'react'
import NoThis from 'nothis-react'

class Counter extends NoThis.Component {
  state = { count: 0 }

  increment({ setState }) {
    setState(({ count }) => ({ count: count + 1 }))
  }

  render({ increment, state: { count } }) {
    return (
      
) } }

Теперь это какой -то сексуальный код.

Функция может быть исключена из Nothis написав это как собственность класса.

class Counter extends NoThis.Component {
  increment = () => {
    this.setState(({ count }) => ({ count: count + 1 }))
  }
}

Это какой -то экспериментальный будущий код, поэтому относитесь к нему как к такому. Пожалуйста, играйте с ним и сообщите о любых ошибках или функциях запроса на GitHub Repo Анкет

Присоединяйтесь к #nothis Движение и Ударь меня на твити Анкет

Если вы ненавидите эту статью, вы также можете их ненавидеть:

  • I ❤ Ramda – частичное применение со специальным заполнителем
  • Функциональное программирование: Альтернативы IF #functional #Javascript #FONCORS
  • Держите свой код тупым

# не это

Оригинал: “https://dev.to/joelnet/creating-react-components-without-this-nothis-1d22”