Александр
Зачем так сложно
А как проще по вашему ?
Александр
Предложите синтаксис
MⅨ
А как проще по вашему ?
Ну возми пример vue синтаксиса
Александр
Ну возми пример vue синтаксиса
Ой, это надо изучать
Александр
Я только в реакт умею
MⅨ
другие скобки уже заняты или будут мешать
То есть эот реально просто скобки без логики?
Th0r
Ну возми пример vue синтаксиса
так там тоже такие же скобки {}
Александр
Дима
на самом деле, разумеется нет
Дима
это обман, чтобы набрать классы
MⅨ
так там тоже такие же скобки {}
Нет , они там означают обьект
MⅨ
А используя v-bind: ты пишешь js
Дима
Фишка jsx в том что хто просто js
это ничем не отличается от любых других template engine с поддержкой жс внутри темплейтов
MⅨ
это обман, чтобы набрать классы
Классы? Может обьекты?
Frontend Priest
Ну возми пример vue синтаксиса
Нет, давай ты прочитаешь, как работает жсх, сравнишь с альтернативами, и, если придумаешь вариант рациональнее, предложишь
MⅨ
Пособие по тому как точно запутать собеседника :'D
Александр
это ничем не отличается от любых других template engine с поддержкой жс внутри темплейтов
Я противопоставлял это подходу с кастомными атрибутами для if/for как в ангуляре скажем. С jsx не надо изучать ещё один синтаксис, тут просто js. Нужен цикл делаешь map, нужен if делаешь if
Frontend Priest
MⅨ
Скажите а это хорошая практика? ({ match: { params: { projectId } } }) => {
MⅨ
Вытаксивать только то что тебе нужно
Vadym
ребят, есть функция const changeTaskDuration = ( tasks: ITasksState, taskID: number, taskStart: number, taskDuration: number ): ITasksState => { return { ...tasks, tasksById: { ...tasks.tasksById, [taskID]: { ...tasks.tasksById[taskID], taskStart, taskDuration } } }; }; можно протестировать используя Jest?
MⅨ
И инициализировать меньше надо
Vadym
создал файл App.test.ts
Vadym
import changeTaskDuration from './App' test("Result of changeTaskDuration will be", () => { const iniData = { ids: [1], tasksById: [ { id: 1, taskName: "Task1", tasksStart: 3, taskDuration: 5, // initial taskDuration cellColor: "red" } ] }; const expectedResult = { ids: [1], tasksById: [ { id: 1, taskName: "Task1", tasksStart: 3, taskDuration: 7, // taskDuration must be changed cellColor: "red" } ] }; expect(iniData).toBe(expectedResult) });
Frontend Priest
Скажите а это хорошая практика? ({ match: { params: { projectId } } }) => {
Настолько глубоко - вряд ли, но в целом деструктуризовать пропсы норм
Eugen
Подскажите, нужно ли писать дефолт пропсы в реакт компоненте, если в reducer есть InitialState в котором уже есть значение по умолчанию (Например appError: false)
Eugen
Надеюсь я смог обьяснить суть вопроса
Roman
Бери графкуель клиент) дубль два
тогда ж придется графкуель сервер тоже делать :/
Дима
сделает gql сервер за тебя
Дима
плюс сразу сгенерит типы для тайпскрипта или флоу, а вдобавок ещё и сразу задеплоит всё на бэкенд по всему миру
Дима
да, только не всрато
Дима
так как бэкенд может собирать данные с огромного количества источников одновременно, в этом же и есть суть gql — аккумулировать весь бэк и предоставить единый апи
Dmitriy
Нада шоб тима аполо для вотча кеша взяла еффектор и переписала на фетч, станет норм клиент
Dmitriy
AppSync
почему aws тебе не накидывает за рефералку еще?)
Дима
хз 😅
Дима
просто какой смысл спонсировать посредников, весь мир так или иначе всё равно хостится и будет хостить ваш код либо на авс, либо в azure, либо в google cloud
Nata
Ребята, а как проверить Реакт приложение на валидную верстку? “make sure that the mark-up is W3C valid with an appropriate tool.” Задание вообще было на обычную верстку, я сделала с помощью Реакта. Вот задумалась, все ли линтер проверил и “раз собралось, значит все окей” или можно еще чем-то проверить?
Nata
так же, как и не реакт приложение
ну скормить w3 валидатору можно уже сбилженную версию только
Frontend Priest
ну скормить w3 валидатору можно уже сбилженную версию только
Скопируй код страницы после первого запуска
Frontend Priest
...
Frontend Priest
Профит
Dmitriy
https://youtu.be/y9qRkzwZF7o
А можешь пояснить почему 1. import * as React from 'react', а потом React.useState('') 2. нет гиста
Sergey
А можешь пояснить почему 1. import * as React from 'react', а потом React.useState('') 2. нет гиста
* ради флоу Ещё вскод не умеет в автоимпорт из реакт пакета
Sergey
Gist закинул в описание
arthur
https://youtu.be/y9qRkzwZF7o
что за микрофон?
Sergey
что за микрофон?
Recording tools MCU-02
Dmitriy
* ради флоу Ещё вскод не умеет в автоимпорт из реакт пакета
а понял. У тебя кстати круто получается записываться, голос отличный. Если поработать над сценарием и избегать лишних фраз/пауз, то вообще найс. Начни писать почуть именно рубрику какуюто. Например можно и продолжить тему рефакторинга
Vadim
Такой вопрос. Как лучше:
rovnyart
во втором случае тебе каждый раз придется делать setProjectInfo({ ...projectInfo, someField: someVal })
rovnyart
а это понижает читаемость как минимум
Vadim
Получается когда запрос вернет инфу то мне мне придется вызвать N методов. И компонент обновится N раз. Ето меня немного смущает.
Daniil
То есть он после каждого метода будет рендерится?)
Daniil
🤔
rovnyart
если тебе не нужна отдельная установка каждого поля, то тогда конечно лучше setProject какой нибудь, который принимает целиком объект
Dima
Получается когда запрос вернет инфу то мне мне придется вызвать N методов. И компонент обновится N раз. Ето меня немного смущает.
компонент не обновиться, render отработает, но если не будет визуальных изменений то перерисовываться он не будет.. Но если все эти данные рпиходят в одном запросе, то разбивать его не несколько setState не надо! Если ети setState будут динмически изменяться из разных инпутов то лучше использовать разные
Дима
А можешь пояснить почему 1. import * as React from 'react', а потом React.useState('') 2. нет гиста
парадоксальная ситуация: все хейтят использование дефолтов до тех пор, пока это не реакт, который вписал в дефолтный экспорт весь свой апи
Дима
да ещё и заставляет импортировать себя с большой буквы
Victor
Подскажите, нужно ли писать дефолт пропсы в реакт компоненте, если в reducer есть InitialState в котором уже есть значение по умолчанию (Например appError: false)
Если пропс все время устанавливается, то зачем дефолтный? Обычно их добавляют когда у сильно реюзанного компонента появляется новый пропс и день во всех местах вызова добавлять этот новый пропч
Дима
парадоксальная ситуация: все хейтят использование дефолтов до тех пор, пока это не реакт, который вписал в дефолтный экспорт весь свой апи
а юзать import {useState} from "react" нельзя потому что тулинг оч изящно заставляет юзать React.createElement
Дима
решается что?)
Dmitriy
решается что?)
С точки зрения тимы реакта
Дима
С точки зрения тимы реакта
вообще говоря, необходимость Исключительного Случая для одной единственной библиотеки, застрявшей в 2014 — это не оч нормально
sterioss
Ээ, а какую альтернативу вы предлагаете, чтобы не импортировать реакт, и использовать jsx?
Дима
+ это ж не брейкинг чейнджис чем они прикрываются
они не могут юзать ничего кроме олдового commonjs https://github.com/facebook/react/blob/master/packages/react/npm/index.js#L6
Дима
Ээ, а какую альтернативу вы предлагаете, чтобы не импортировать реакт, и использовать jsx?
ну jsx прагма позволяет юзать в качестве createElement любую функцию
Дима
кому надо?