Мне нравится концепция вычисляемых привязок: Polymer автоматически пересчитывает вычисляемые свойства всякий раз, когда изменяется зависимое значение. Это обеспечивает отличное разделение свойств.

Например: предположим, мы хотим показать ребенка по сравнению с взрослым на основе свойства возраста. Если пользователь не указал возраст, мы просто называем это большим секретом.

Вот код:

properties: {
  age: Number,
  prettyAge: {
    type: String,
    computed: '_computePrettyAge(age)'
  }
},
_computePrettyAge: function(age) {
  if (!age) return 'Big secret';
  return age < 18 ? 'Child' : 'Adult';
}

Это прекрасно работает до тех пор, пока возраст инициализируется со значением, отличным от undefined. В противном случае вычисляемая привязка Polymer не активировала бы метод _computePrettyAge, сохраняя при этом свойство prettyAge undefined.

Так как же нам получить prettyAge, даже если свойство age undefined? Решение на самом деле довольно простое: определите значение для свойства prettyAgeсамого:

properties: {
  age: Number,
  prettyAge: {
    type: String,
    computed: '_computePrettyAge(age)',
    value: 'Big secret'
  }
},
_computePrettyAge: function(age) {
  if (!age) return 'Big secret';
  return age < 18 ? 'Child' : 'Adult';
}

Теперь prettyAge имеет значение Большой секрет, пока age не будет установлен в первый раз. После установки _computePrettyAge срабатывает и генерирует правильное значение.

Итак, что произойдет, если возраст снова станет неопределенным? В этом случае вычисляемая привязка Polymer будет активирована и вернет prettyAge значение Big secret.

Удачного кодирования!

Хотите узнать больше о Polymer? Посмотрите все наши Публикации на Medium о Polymer.