• Где двусторонний дата-биндинг?

    ShadowOfCasper
    @ShadowOfCasper Автор вопроса
    Дмитрий, естественно.
    Пример. Есть login, есть register, у обоих компонентов есть одна и та же функция биндинга. Она абсолютно идентична, но я не могу её вынести в хок потому что у него совсем другой стейт:
    //Рега
    class Register extends React.Component {
        constructor(props) {
            super(props)
            this.updateField = this.updateField.bind(this)
            this.state = {
                profileName: {
                    valid: true,
                    value: ''
                },
                email: {
                    valid: true,
                    value: ''
                },
                confPass: {
                    valid: true,
                    value: ''
                }
            }
        }
    // явный биндинг
        updateField(fieldKey, e) {
            const value = e.target.value;
            this.setState((state) => {
                state[fieldKey].value = value;
                return Object.assign({}, state)
            })
        }
        render() {
            return <div className='auth__reg'>
                <div className='auth__card'>
                    <Input className='auth__input'
                        labelInside
                        value={this.state.profileName.value}
                        label={
                            <Translation>
                                {t => t('auth.label.profile')}
                            </Translation>
                        }
                        onChange={this.updateField.bind(this, 'profileName')}/>
                    <Input className='auth__input'
                        labelInside
                        value={this.state.email.value}
                        label={
                            <Translation>
                                {t => t('auth.label.email')}
                            </Translation>
                        }
                        onChange={this.updateField.bind(this, 'email')}/>
                    <Input className='auth__input'
                        labelInside password
                        value={this.state.password.value}
                        label={
                            <Translation>
                                {t => t('auth.label.setPass')}
                            </Translation>
                        }
                        onChange={this.updateField.bind(this, 'password')}/>
                    <Input className='auth__input'
                        labelInside password
                        value={this.state.confPass.value}
                        label={
                            <Translation>
                                {t => t('auth.label.confirmPass')}
                            </Translation>
                        }
                        onChange={this.updateField.bind(this, 'confPass')}/>
                   
                </div>
            </div>
        }
    }
    
    //логин
    class Login extends React.Component {
        constructor(props) {
            super(props);
            this.updateField = this.updateField.bind(this)
            this.state = {
                remember: true,
                login: {
                    value: ''
                }
            }
        }
    // и вот она снова... 
        updateField(fieldKey, e) {
            const value = e.target.value;
            this.setState((state) => {
                state[fieldKey].value = value;
                return Object.assign({}, state)
            })
        }
    
        render() {
            return <div className='auth__login'>
                <div className='auth__card'>
                    <Input className='auth__input'
                        labelInside
                        value={this.state.login.value}
                        label={
                            <Translation>
                                {t => t('auth.label.login')}
                            </Translation>
                        }
                        onChange={this.updateField.bind(this, 'login')}/>
                </div>
            </div>
        }
    }

    Лишние куски я выпилил
  • Как убрать ошибку в npm?

    ShadowOfCasper
    @ShadowOfCasper
    kolykisel, без сарказма, ярлык должен помочь. Но зреть же надо в корень проблемы, верно?) С вендой вечные проблемы путей. Эта система бесит всех nodejs разрабов потому что требует повсеместное использование path.resolve(). И меня она тоже бесит, вернее бесила в далёком прошлом когда я попытался работать с нодой под вендой. Это далеко не первая и не последняя npm ошибка, которую ты отхватишь именно под этой системой
  • Git+ftp возможно ли одновременно использовать в проекте?

    ShadowOfCasper
    @ShadowOfCasper
    FrozenAshes, а битрикс что, в файлах исходников держит контент? Админка должна управлять данными из базы и ничего не должна знать об исходном коде проекта. В исходниках вообще не должно быть контента. (---Исключения составляют локализации и они тоже правятся через git в json или xml смотря что за стэк---) Если это не так, то что-то вы там делаете неправильно
  • Git+ftp возможно ли одновременно использовать в проекте?

    ShadowOfCasper
    @ShadowOfCasper
    FrozenAshes, всё так как сказал Владислав Лысков . Если хотя бы один не самый умный человек произведёт напрямую в origin незаиндексированные изменения в git, репозиторий накроется медным тазом, его придётся реиндексить по новой для всех веток. Это геморрой, да такой, что легче заинитить репу по новой.
  • Почему всё работает лишь временно?

    ShadowOfCasper
    @ShadowOfCasper
    fapchat, ну значит плохо понял, потому что event.preventDefault() вызывается один раз и сверху
  • А есть ли jQuery height() чистом js?

    ShadowOfCasper
    @ShadowOfCasper
    К сиему чистому разъяснению по данному вопросу хочу лишь добавить его автору обход проблемы нулевой блочной модели display none.
    Чтобы вычислить высоту скрытого блока, его нужно скрывать через opacity: 0; pointer-events: none. Что будет равнозначно действию display: none с сохранением в доме блочной модели скрываемого элемента
  • Функционал, потом верстка, или наоборот?

    ShadowOfCasper
    @ShadowOfCasper
    Антон Р., и как же ты обойдёшься без ветвлений во вьюхах? И если их не должно быть, как ты обоснуешь присутствие в библиотеках этого или это или вот это ну и куда же без вот этого.
    Наверное разработчики фреймворков просто не такие дальновидные ребята как ты =)
  • Как правильно организовать сборку javascript bundle?

    ShadowOfCasper
    @ShadowOfCasper
    mikoniyan, можешь ещё к этому всему webpack bundle analyzer прикрутить, чтоб тебе вообще всё прозрачно было видно
  • Как правильно определить ширину контейнера и брейкпоинты при верстке?

    ShadowOfCasper
    @ShadowOfCasper
    Антон Кирпач, ну это печально. Прототипирование интерфейса под пользовательский опыт - задача дизайнера. Задача разработчика - предоставить гибкость изменений кодовой базы интерфейса. Разработка должна, наоборот, развязывать дизайнеру руки для реализации любых идей. Много брейков это плохо. А приведённые тобой - излишнее переполнение кодовой базы и что самое забавное - ни один из приведённых тобой брейков не предусматривает mobile landscape. Про ширину помнят все, а вот про то, что у viewport ещё и высота есть - не помнит почти никто.
    Это терпимо только в типовых проектах. В нетривиальном сервисе с подобным подходом далеко не уйдёшь
  • Как правильно определить ширину контейнера и брейкпоинты при верстке?

    ShadowOfCasper
    @ShadowOfCasper
    Антон Кирпач, впервые слышу чтоб это решал верстала а не дизайнер.
    Что-то тут не так -_-
  • Как правильно определить ширину контейнера и брейкпоинты при верстке?

    ShadowOfCasper
    @ShadowOfCasper
    11? Да ты парниша усидчивый.
    У меня за всю историю разработки самый адаптивный дизайн макетами был описан максимум в 6 брейкпоинтов. 11 уже как-то параноидально
  • Можно ли начать изучения JS, если знаешь только базовый HTML&CSS?

    ShadowOfCasper
    @ShadowOfCasper
    Роман, про вебманки вообще у меня об этом немного другое мнение. Человек так уж устроен, что имеет некую предрасположенность - назовём это талант - к виду какой-то деятельности на генетическом уровне. Если человек родился с талантом в гуманитарии, конечно его вряд ли смутит var char1, char2, char3 и не поймёт он почему ж таки dont repeat yourself. Как бы ты ему не объясняй, сколько бы универов он не прошёл.
    А другой, к примеру, классику всю жизнь не понимал, искусству роли не придавал, с креативностью и воображением не очень дружит, но способен и без универа за одну вчитку понять чем отличается индексный массив от ассоциативного - ему не нужен универ чтоб начать грамотно кодить, было бы желание и любая дорога выведет к опыту, хорошим проектам и успеху радости процветанию, хоть ты с jquery начинай, хоть с ассемблера.
    Всё это, конечно, имхо, из личных наблюдений
  • Можно ли начать изучения JS, если знаешь только базовый HTML&CSS?

    ShadowOfCasper
    @ShadowOfCasper
    OctorberMyMonth, на самом деле только на вид пугающе. Большинство этих вещей - упрощение базы, а не усложнение. Концепция везде схожая. Пописал годик на vue и реакт ангуляр осваиваешь за одни выходные. пре- и пост- процессоры стилей - ну там вообще учить нечего. Нужно просто понять как они обогащают базовый css. Оно всё зачем-то да нужно, и на самом деле усваивая что-то новое в определённой степени понимаешь как можно упростить себе работу. Поэтому дальше всегда проще и приятнее.
    Основная база знаний - всё равно html + css + js. И вместе они составляют бОльший объём информации, чем всё остальное в этой схеме.
  • Можно ли начать изучения JS, если знаешь только базовый HTML&CSS?

    ShadowOfCasper
    @ShadowOfCasper
    Роман, нееет нет, я не спорю, в большинстве своём ты прав, но преподнёс это в таком виде, что если без основ программирования сесть кодить jquery - вырастешь в вебманки, но эй!... я не вебманки =(
  • Можно ли начать изучения JS, если знаешь только базовый HTML&CSS?

    ShadowOfCasper
    @ShadowOfCasper
    Роман, год как рофлю с этой схемы. Она обогатилась с того момента, когда я видёл её в последний раз - на деле же от каждой конечной плиточки можно ещё пару ответвлений сделать. От postCSS можно вообще ещё одну схему чертить) И relay с apollo до сих пор не добавили - как так? Все уже забыли про graphQL или ещё не вспомнили....
  • Почему всё работает лишь временно?

    ShadowOfCasper
    @ShadowOfCasper
    fapchat, ну вообщем взглянул я на код...
    1) не надо forms[0], раскидай их по разным переменным. Через коллекцию имеет смысл если ты циклично даёшь им какую-то общую функциональность.
    2) event.preventDefault() вызови один раз и сверху. Или return false в самом конце колбэка. Ты его затусил куда-то в середину и ещё и в блок условий и ещё и несколько раз, что-то мне кажется из-за этого он и не превентится)
  • Почему всё работает лишь временно?

    ShadowOfCasper
    @ShadowOfCasper
    Ничего так как нужно не работает

    Да тебе бы в QA с такой постановкой проблем)
  • Можно ли начать изучения JS, если знаешь только базовый HTML&CSS?

    ShadowOfCasper
    @ShadowOfCasper
    alex-1917, я смотрю тут все такие умные - что дам в джиквери изучать то? А ничего что у него доков как у трёх реактов, 4х вью и +/- как у ангуляра со всеми его примочками. Я написал на jquery овер20 проектов по всякой мелочи, и то уверен что до сих пор не знаю всех его фокусов. Не стоит недооценивать jq и переоценивать себя.
    И уж тем более писать новичку "да чё там учить-то". У всех новичков даже с простыми вещами туго, на то они и джуны. Подобные фразочки обескураживают их. Я по себе помню
  • Почему всё работает лишь временно?

    ShadowOfCasper
    @ShadowOfCasper
    fapchat, лучше используй onsubmit. target события onsubmit - сама форма. Из неё легче получить доступ к данным формы, чем из click event. Его target будет кнопка отправки формы, по своему содержанию не имеющая доступа к данным формы.
    Кода я тебе ни строчки, конечно же, не напишу. Всё сам гугли и пробуй. Полезнее всё-таки объяснить чем сделать за тебя
  • Можно ли начать изучения JS, если знаешь только базовый HTML&CSS?

    ShadowOfCasper
    @ShadowOfCasper
    Роман, и ты предлагаешь человеку, буквально вчера пришедшему в веб окунуться с головой в ООП, понятия наследований - инкапсуляций просто чтоб начать сайты писать? А может ему лучше пойти сразу выпилиться после 200 страниц орейли основы js? Хоть долго мучаться не будет.
    Я всему учился сам, и пока я с практикой не догнал что такое ООП, до меня не доходило. Реальные знания приходят с практикой. А все эти учебники, с тонной примеров, описывающих основы, но предельно далёких от реальности, просто грузят мозг и отбивают всякое желание этим заниматься.
    Я не знаю насколько я там вебманки, но за 4 года, а я в сфере 4 года, не заостряясь на практике, применяемой в наших универах - пичкать с глубоких основ дискретной математики - поднялся с 30 до 170к в зп и от jquery перешёл на ваниль, потом на вью и сейчас на реакт. И как-то у меня особо нет проблем с основами - любая технология даётся мне легко и изящно, несмотря на то, что я прогуливал занятия по дискретной математике.
    Я не спорю с тем что основы важны, но основы сложны. Чтобы их понимать, нужно понимать на уровень выше них. Иначе учиться будешь как в универе - 6 лет сплошного насилия а на выходе 95% знаний теряется на практике за полной ненадобностью.
    Поэтому я всем и всегда рекомендую начинать с практики, опираясь на теорию при необходимости. Она сейчас любая в одной вкладке, только запрос грамотно составь. И не придётся задавать тупые вопросы на тостер. Скорее всего кто-то их уже задал до тебя)