Giter VIP home page Giter VIP logo

Comments (7)

rsilivestr avatar rsilivestr commented on September 17, 2024

В JavaScript для случаев, когда названия ключа объекта совпадает и передаваемой переменной совпадают, следует использовать краткую запись. Вместо:
image
будет:

+button-check({ labels })

from hotel.

rsilivestr avatar rsilivestr commented on September 17, 2024
  1. То же самое в button-like, от условия можно избавиться:
mixin button-like({ isLiked, likeNumber })
  .button.button-like.js-button-like(class = isLiked && 'button-like_is-liked')
    .button-like__heart.js-button-like__heart= isLiked ? 'favorite' : 'favorite_border'
    .button-like__number.js-button-like__number= likeNumber

В примере выше я заодно скомбинировал синтаксис задания классов (через точку и атрибут) и заменил ternary, где третий операнд - пустая строка логческим И.

И ещё один трик: в pug не обязательно начинать каждую строчку JavaScript-кода с -, можно добавить после первого "минуса" перенос строки и отступ:

-
  const one = 1;
  const two = 2;

from hotel.

rsilivestr avatar rsilivestr commented on September 17, 2024

Нашёл ещё var-ы:

image

from hotel.

rsilivestr avatar rsilivestr commented on September 17, 2024

Тут наверное button должен быть вместо a:

if variant==='arrow'
  a(class=buttonClassName type=purpose)

from hotel.

rsilivestr avatar rsilivestr commented on September 17, 2024

Тут явно можно убрать лишние обёртки (обе), тем более для display: flex можно задать gap и margin уже не нужен:

.header-bar__buttons
  .buttons-header-bar
    .buttons-header-bar__first-button
      +button
    +button

from hotel.

rsilivestr avatar rsilivestr commented on September 17, 2024

Интересное решение, #{tagHTML}, я таким не пользовался.

Только зачем задавать промежуточную переменную tagHTML=tag==='a'?'a':'button'?

И ещё такая проблемка: атрибут href не валиден для кнопок, а type - для ссылок. Следует либо разделить на кнопку и ссылку, либо в зависимости от тэга и атрибуты задавать.

Также было бы неплохо добавить пробелов в некоторые места, плюс список деструктурируемых параметров аргумента длинноват, не очень удобно читать - можно деструктурирование перенести в тело миксина:

mixin button(options)
  - const { ... } = options;

from hotel.

rsilivestr avatar rsilivestr commented on September 17, 2024

span.button-icon__empty-elem - а можно этот заменить на padding, margin или псевдоэлемент?

from hotel.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.