> Manuales > Manual de Polymer 2

Qué funcionalidades tenemos disponibles para la configuración de propiedades en los componentes de Polymer 2.

Existe un rico conjunto de funcionalidades en las propiedades de los componentes, incorporadas de casa en Polymer 2, que nos servirán para satisfacer las más variadas necesidades en el desarrollo de custom elements y de aplicaciones basadas en Web Components. Algunas de ellas ya las hemos visto anteriormente en el Manual de Polymer 2. Por ejemplo, en el artículo anterior describimos con detalle cómo funciona la declaración "type" en las propieades, aunque en este artículo las explicaremos todas, para que tengas una visión global de las posibilidades.

Si vienes de Polymer 1.x, hay que decir que las propiedades de Polymer 2 tienen las mismas funcionalidades que ya conoces, por lo que el presente artículo te servirá más bien para refrescar los conocimientos y acceder a nuevos ejemplos de componentes realizados según las guías de Web Components V1 y Polymer 2.

Configuraciones posibles en propiedades de Polymer 2

Comenzamos con un listado de las funcionalidades configurables en las propiedades de los componentes.

De todas estas configuraciones de propiedades iremos realizando ejemplos a lo largo del manual. Muchas de ellas las veremos en repetidas ocasiones y las analizaremos de manera más detallada en futuros artículos.

Ejemplo de declaración de propiedades

Aunque hemos visto anteriormente otros componentes en los cuales hemos incorporado propiedades, vamos a ver un nuevo ejemplo de declaración de custom element Polymer 2 en el que tenemos un listado amplio de propiedades.

En este caso tenemos un supuesto componente que muestra un contacto. El nombre es "persona-contacto" y básicamente lo hemos hecho para tener varios tipos de propiedades con diversas inicializaciones. Es interesante fijarse en la inicialización de las propiedades de tipo "Array" y tipo "Objetc", en las que tenemos necesariamente que crear una función que hace el return del nuevo array de teléfonos de contacto o el objeto con los datos complejos de su dirección.

<link rel="import" href="../../bower_components/polymer/polymer-element.html">

<dom-module id="persona-contacto">
  <template>
    <style>
      :host {
        display: block
      }
    </style>
    <h1>
      Contacto {{nombre}} {{apellidos}}
    </h1>
    <p>
      ... dejamos como ejercicio crear un template adecuado con el que mostrar de manera ordenada sus propiedades
    </p>
  </template>

  <script>
    class PersonaContacto extends Polymer.Element {
      static get is() {
        return 'persona-contacto';
      }

      static get properties() {
        return {
          nombre: {
            type: String,
            value: ''
          },
          apellidos: {
            type: String,
            value: ''
          },
          direccion: {
            type: Object,
            value: function() {
              return {
                via: '',
                numero: '',
                codigoPostal: '',
                ciudad: ''
              };
            } 
          },
          telefonos: {
            type: Array,
            value: function() {
              return [];
            }
          },
          FechaNacimiento: Date,
          email: {
            type: String,
            value: ''
          },
          identificadorGrupo: {
            type: Number,
            value: 0
          },
          activo: {
            type: Boolean,
            value: true
          }
        };
      }

      constructor() {
        super();
      }

    }
    window.customElements.define(PersonaContacto.is, PersonaContacto);
  </script>
</dom-module>

Queda bastante por aprender de las propiedades, pero imagino que ya vamos teniendo las nociones básicas para entender cómo funcionan. En los futuros artículos haremos nuevos ejemplo en los que trabajaremos con otras configuraciones posibles para las propiedades.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual