All streams
Search
Write a publication
Pull to refresh
316
32
Igor Agapov @aio350

JavaScript Developer

Send message

спасибо за уточнение

Спасибо, согласен, поправил

Спасибо за замечание

Спасибо за замечания и дополнения

Современный Redux, представленный Redux Toolkit, не так уж плох. Если же говорить о небольших и средних проектах, то, действительно, Context API + useReducer() + Immer — то, что доктор прописал. А еще есть такая штука, как Recoil (покамест экспериментальная). Учитывая, что его разработкой занимается (или занимался) Jordan Walke (тот чувак, который разработал React), а также то обстоятельство, что команда React, и, в частности, Dan Abramov (тот чувак, который «разработал» Redux), в последнее время усиленно дистанцируется от Redux, можно предположить, что именно Recoil станет официальным инструментом React для управления состоянием приложений (впрочем, Walke в январе этого года ушел из Facebook, so...). Еще интересно, когда React, наконец, определится с инструментом для CSS.
TS — это статический типизатор (static type checker) для JS, причем, далеко не первый и, возможно, не последний, поэтому правильнее говорить об использовании TS в дополнение к JS, а не вместо него. Плохое знание JS является недостатком разработчика, а не языка: const newSessionCount = +prev + 1 и проблема решена. Либо, если приходится часто работать с хранилищем, можно создать такую утилиту (на примере LocalStorage):
export const storage = ((s) => ({
  set: (key, value) => s.setItem(key, JSON.stringify(value)),
  get: (key) => JSON.parse(s.getItem(key)),
  key: (n) => s.key(n),
  remove: (key) => s.removeItem(key),
  clear: () => s.clear()
}))(window.localStorage)
Спасибо за RFC, было интересно почитать
Спасибо за подборку. Как всегда, много всего интересного
Спасибо за статью
Спасибо за статью. Небольшой рефакторинг примера с useState:

import { useState } from 'react'

function Profile() {
  const [profile, setProfile] = useState({
    name: 'John',
    age: 30
  })

  function handleChange({ target: { value, name } }) {
    setProfile({ ...profile, [name]: value })
  }

  const { name, age } = profile
  return (
    <div>
      <form>
        <input type='text' value={name} onChange={handleChange} name='name' />
        <input type='text' value={age} onChange={handleChange} name='age' />
        <h2>
          Name: {name}, Age: {age}
        </h2>
      </form>
    </div>
  )
}

Information

Rating
236-th
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Frontend Developer
Senior
JavaScript
HTML
React
TypeScript
CSS
Web development
Node.js
Express
Webpack
NextJS