• Как заставить WebStorm автоматически заворачивать длинные строки?

    miminari13
    @miminari13
    view - active editor - use soft wraps
    это для вебшторма, но думаю в phpstorm тоже самое
    Ответ написан
    3 комментария
  • Как использовать useStore, useSelector, useDispatch hook?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    1. useDispatch - получение функции store.dispatch в компоненте. Раньше для вызова action функциональный компонент приходилось оборачивать в вызов connect:
    const Foo = ({ dispatch }) => {
      const handler = useCallback(() => {
        dispatch(action());
      }, []);
    
      return (
        <Bar onClick={handler} />
      );
    };
    
    export default connect()(Foo);


    Сейчас:
    const Foo = () => {
      const dispatch = useDispatch();
    
      const handler = useCallback(() => {
        dispatch(action());
      }, []);
    
      return (
        <Bar onClick={handler} />
      );
    };
    
    export default Foo;


    2. useSelector - маппинг значения из store.
    Раньше:
    const Foo = ({ value }) => {
      return (
        <Bar value={value} />
      );
    };
    
    const mapStateToProps = state => ({
      value: state.value,
    });
    
    export default connect(mapStateToProps)(Foo);


    const Foo = () => {
      const value = useSelector(state => state.value);
    
      return (
        <Bar value={value} />
      );
    };
    
    export default Foo;


    3. useStore - получение store целиком:
    const valueSelector = state => state.value;
    
    const Foo = () => {
      const { dispatch, getState, subscribe } = useStore();
      const value = valueSelector(getState());
      
      useEffect(() => subscribe(console.log), []);
    
      const handler = useCallback(() => {
        dispatch(action());
      }, []);
    
      return (
        <Bar onClick={handler} value={value} />
      );
    };
    
    export default Foo;

    Вряд ли useStore вам, действительно, понадобится на практике.
    Ответ написан
    Комментировать
  • Как сделать редирект на другую страницу если пользователь начал скролл?

    kartovitskii
    @kartovitskii
    Fullstack
    window.addEventListener('scroll', function() {
      window.location.href = '#';
    });
    Ответ написан
    Комментировать
  • Как верстать изогнутые секции?

    RAX7
    @RAX7
    SVG + 2 маски, одна пропорционально растягивается, другая непропорционально. Отрицательным margin загнать секции одна на другую.
    Ответ написан
    6 комментариев
  • Как работают Thunk?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Как работают Thunk?

    Вы имели ввиду асинхронные действия и промежуточное ПО redux-thunk?

    Правильно ли я понимаю, что этот код будет выполнен синхронно

    Правильно.

    Сам вызов store.dispatch() синхронный. Но если туда передается не объект, а функция такая как addPost, то до редьюсеров она не доходит. Ее перехватывает redux-thunk middleware и выполняет передавая туда dispatch, getStore и опциональный третий аргумент. Ясное дело, что такая функция может быть асинхронной.
    Ответ написан
    Комментировать
  • Как вы справляетесь на удаленной работе?

    Ну как рекомендуют везде:
    1. Соблюдать режим.
    2. Работать в специально оборудованном месте
    3. Регулярная физическая активность (Как минимум прогулка на 2 часа)
    4. Правильное питание
    Ответ написан
    Комментировать
  • Vue.js + Wordpress?

    @FullStackAlex Автор вопроса
    Веб-разработчик, электрик, кочевник
    Наконец таки я решил все технические вопросы для внедрения Vue.js в WordPress-Workflow. Долго я к этому шёл. Трудно было совместить freelancing на основе WordPress и WooCommerce и одновременно самообучение Symfony и Vue.js и создание первых реальных проектов на их основе. Но создание первого большого проекта на основе headless Symfony 4 (JSON API) и потребителя на основе Vue.js меня хорошо продвинуло вперед в направлении внедрения Vue.js в WordPress. Почему мне так интересен WordPress/WooCommerce умея делать Backend на основе Symfony? Потому что WordPress делает доступным веб технологии и маленьким клиентам по "демократическим" ценам, при этом всё ещё позволяя фрилансеру хорошо заработать (по крайней мере в Берлине, где я проживаю).

    Так как путь сюда до сих пор никем в интернете детально не описан и я угрохал недели если не месяцы на решение этой задачи прочитывая все статьи и docs с этой темой связанные (освоил для этого даже наконец таки Docker и Nginx и углубил знания в настройке Webpack) и пройдя многие не верные пути (vue-cli, nuxt.js) - я решил создать в течении следующих недель курс на Udemy.com на английском за 20 баксов. Если будет тут достаточно интереса (хотя бы лайков 10 ), то сделаю туториал и на русском. Курс будет содержать настройки Webpack, Docker (optional), Apache/Nginx. Моё решение сохраняет в отличии от nuxt.js все преимущества как WordPress так и Vue.js при этом соблюдая "законы" SEO и Social Marketing (Twitter Cards, Facebook Open Graph итп) и самое главное Hot Module Replacement с PHP/WordPress Templates!!!!!! .
    Я очень разочарован Nuxt.js и расскажу в Tutorial почему он далеко не во всех случаях технически годен и почему с точки зрения open source этот проект не оптимальный исходя из моего личного опыта.

    UPDATE 15.05.2019
    К сожалению руки до туториала так и не дошли. Но создал Github Repo с простым Starter Theme.
    Демо можно тут просмотреть: wue-theme.app
    Пока без доскональной документации. Надеюсь к концу месяца создам.
    Приколы темы:
    -Hot Module Replacement с PHP файлами (если только это интересно можно и тут скачать Webpack config)
    -полная поддержка SEO без Server Side Rendering (SSR). Реализуется это за счёт загрузки данных вместе с HTML в глобальном JS объекте "technomad", вместо дополнительного AJAX-запроса, что не поддерживается гуглом и для чего и нужны все прибамбасы типа Nuxt.js и phpv8/v8js.
    -элементы меню и новости автоматически добавляются через WordPress-Backend.
    -тема устонавливается как и любая другая тема без каких либо дополнительных настроек сервера (нужно скачать всю Repository и скомпремировать "wuetheme" папку в ZIP и тогда можно просто загружать как и обычную тему).
    -Github Repo без данных из демонстрации. Может ещё добавлю функцию установки демо данных.
    -сервер демо во Франкфурте без CDN. Так что во Владивостоке загрузка наверное немного дольше длится будет)) Из Берлина за 600-700ms загружается с VPS.
    -есть ещё много над чем работать (pagination, проверка загруженны ли скрипты и стили плагинов при Ajax route change, пока они загружаются только при инициальной загрузки, но скрипты и стили могут быть на каждой странице иные) , нo даже в данном виде эта тема на сколько я знаю уникальная.
    -тут можно проследить прогресс перестройки моего сайта с этой темой: stage.alexfullstack.dev, там больше клёвых анимаций))
    Пока всё. Have fun :)

    Update 30.05.2019
    Много чего обновил на Github.

    Update 02.06.2019
    Я решил вчерашнюю проблему)))
    Нужно было просто выспаться))
    Завтра подробно опишу и обновлю Github Repo.

    Update 03.06.2019
    -загрузил на Github новую "bulletproof SEO" версию с "Dynamic Rendering Implementation"
    -подробная статья тут

    Update 14.06.2019
    Перенёс сайт на wue-theme.app.
    Демонстрация Github версии тут: starter.wue-theme.app
    Добавил простую Load More Pagination и очистил код.
    Ответ написан
    21 комментарий
  • Как сделать адаптивно вот такую карточку товара?

    anatoly_kulikov
    @anatoly_kulikov
    Помог ответ? Отметь решением!
    Первое, что приходит на ум - используйте флекс, логика примерно такая - строчка, в ней три элемента. Первый - название, третий - значение. Второй должен занимать всё остающееся пространство - в нем просто делаете border-bottom точками или на фон нужное изображение.

    Вот вроде как и всё.
    Ответ написан
  • Занимается ли версткой front-end developer?

    Vlad_IT
    @Vlad_IT Куратор тега Вёрстка
    Front-end разработчик
    Ну, зависит от компании. Сложную верстку, с анимациями и прочим, не каждый фронт потянет, но и не каждый верстальщик. Но часто, front-end разработчики умеют верстать на должном уровне, чтобы делать типовые компоненты. Я предпочитаю верстать сам, т.к. мне удобнее раскидывать нужные компоненты как мне надо, чтобы потом не подстраивать свой код под верстку, или не переделывать верстку под свой код.
    Также, что касается ReactJS, то там после раскидки верстки на компоненты, переделать что-то в верстке верстальщик не сможет (разве что в стилях) без знания JSX, да и с базовыми знаниями будет не очень хорошо, если он будет туда лезть. В Vue получше, там минимум логики в шаблонах, но все таки, там отдельный шаблонный язык, который следует понимать.
    Поэтому, довольно редко бывает (по крайней мере в продуктовых компаниях, разрабатывающих SPA), что есть отдельный верстальщик в команде, разве что человек, который предпочитает брать задачи по верстке, или новичок, которому команда предпочитает скидывать эти задачи.
    Ответ написан
    1 комментарий
  • Как правильно сверстать такой элемент?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Flex контейнер внутри которого блок с точками занимает все свободное пространство. При этом можно ему задать любые свойства и фон:
    Ответ написан
  • Как задать позиционирование блоку по БЭМ?

    Vlados102rus
    @Vlados102rus
    Для этого для этого блока применяем миксы. Например наш блок
    <div class="parent">
    	<ul class="menu-list">
    		<li class="menu-list__item">1</li>
    		<li class="menu-list__item">2</li>
    		<li class="menu-list__item">3</li>
    	</ul>
    </div>


    Нам нужно спозиционировать блок "menu-item" Мы делаем микс "menu-item parent__menu-item" и уже "parent__menu-item" задаем позиционирование, какое нам нужно, так как он является элементом блока "parent".

    <div class="parent">
    	<ul class="menu-list parent__menu-list">
    		<li class="menu-list__item">1</li>
    		<li class="menu-list__item">2</li>
    		<li class="menu-list__item">3</li>
    	</ul>
    </div>
    Ответ написан
    Комментировать