Lista
Para renderizar uma lista, nós usamos a função nativa do Inter chamada renderList, como as outras funções, ela apenas recebe um objecto como o seu argumento e o referido objecto deve ter as seguintes propriedades:
- in - Deve ser uma string que vai indicar o valor do atributo id do elemento onde a lista será renderizada.
- optimize - Essa propriedade foi adicionada desde a versão 2.2.3, ela serve para optimizar a performance da lista, vai até a parte que fala sobre a opção optimize nessa matéria para uma explicação mais detalhada.
- each - Representa os dados em que a lista será baseada, o valor dessa propriedade pode ser uma Array, um objecto, Set, Map ou um número.
- do - Deve ser um método, e ele será invocado pela quantidade de dados. Para mais info vai até à parte que fala sobre a opção do nessa matéria.
A função template
O template da nossa lista deve ser expresso com a função template, essa função recebe apenas um objecto como o seu argumento e o referido objecto aceita as seguintes propriedades:
- tag(obrigatório) - O valor dessa propriedade deve indicar o nome da tag que será criada, o valor deve ser apenas uma string ou uma função. Se for uma função, ela deve retornar uma string(que vai representar o nome da tag).
- text - O valor dessa propriedade vai indicar o texto do elemento criado. Se o valor for null ou undefined, o texto não será criado, e se o valor for uma função, ela será invocada e o valor retornado pela função vai representar o texto do elemento.
- renderIf - Essa propriedade antes da versão 2.1.0 aceitava apenas valores booleano, mas agora se o valor da referida propriedade for null, undefined, false, 0 ou uma string vázia, o elemento não será renderizado, caso o contrário(se for qualquer valor menos os citados), o elemento será renderizado.
- attrs - Deve ser um objecto, e as propriedades do referido objecto serão os atributos do elemento e os valores das propriedades serão os valores dos respectivos atributos. Se o valor for uma função, a função será invocada e o valor retornado pela função será o valor do atributo. Se o valor for null undefined, ou false o atributo não será criado.
- events - Deve ser um objecto, e as propriedades do referido objecto serão os eventos que o elemento escutará, e os valores das propriedades devem ser funções que serão invocadas quando os eventos ocorrerem, e o nome do evento deve ser oficial do DOM.
- styles - Deve ser um objecto, e as propriedades do referido objecto serão os nomes dos estilos que serão aplicados no elemento, e os valores, serão os valores dos respectivos estilos. Se o valor for uma função, a função será invocada e o valor retornado pela função será o valor do estilo. Se o valor for null ou undefined, o estilo não será criado, e o nome do estilo deve ser oficial do CSS.
- children - Deve ser uma Array de objectos que aceitam as mesmas propriedades que o objecto da função template, e os elementos produzidos na referida Array, serão os filhos do elemento que estamos a nos referir.
Vê um exemplo:
Opção do
Dentro do metódo do, a palavra-chave this, indica o reator da lista e a função renderList também retorna o reator da lista. O referido método deve retornar a função template.
O número de argumentos que esse método recebe, depende do valor da opção each. Se o valor for uma Array, essa função vai receber três argumentos.
- O primeiro argumento será o item atual na iteração.
- O segundo argumento será a posição do item atual na Array.
- O terceiro argumento será o reator da lista.
Se o valor for Set, a função vai receber dois argumentos.
- O primeiro argumento será o item atual na iteração.
- O segundo argumento será o reator da lista.
Se o valor for objecto ou Map, a função vai receber três argumentos.
- O primeiro argumento será o nome da propriedade atual na iteração.
- O segundo argumento será o valor da propriedade.
- O terceiro argumento será o reator da lista.
Cartão de Programador(a)
Use o objecto cartao para modificar a lista.
Se o valor da opção each for um número(Number), a função vai receber apenas um argumento, que será o número atual na iteração.
O reator da lista
O Inter é reativo por padrão, então, quando você alterar os dados da lista, o Inter vai se aperceber e atualizar a lista para refletir as novas informações.
Se o valor da opção each for Array, objecto, Map ou Set, se você usar um método que modifica os dados em que a lista for baseada, o Inter vai reagir à essa alteração. Volte para o primeiro exemplo nessa matéria, abra o console e tenta fazer o seguinte: reator[0].nome="Jonatan", você vai ver que a parte da interface que usa aquele valor será atualizada, ou ainda podes ir mais longe, fazendo assim: reator.push({nome:"Teu nome", idade:"Tua idade", casado:false}), você vai acrescentar um item no final da lista.
E o reator da lista tem as seguintes propriedades:
SetEach
Essa é uma propriedade reativa, só de definição, é usada quando quisermos definir outros dados em que listagem será baseada. Quando usamos a referida propriedade é como se estivéssemos a redefinir o valor da opção each.