Em 2.0.0-rc.1, uma construção como
<p>Count: {{$refs.components && $refs.components.length}}</p>
<sub-component v-for="item in items" ref="components">
não está mais funcionando (a contagem permanece no valor inicial, mesmo se items
e, portanto, a contagem do componente for alterada). Na v1, arrays de $ refs seriam atualizados reativamente.
Não tenho certeza se isso é um bug ou um recurso, mas # 2873 não parece mencioná-lo.
Isso é intencional - o motivo é que $refs
agora estão registrados / atualizados durante o próprio processo de renderização. Não é recomendado confiar em $refs
em modelos, pois eles se destinam apenas a acesso programático em JavaScript.
Eu atualizei o nº 2873 para incluir isso.
@ yyx990803 isso significa que usar this.$refs.*
em computed
propriedades também deixará de funcionar na v2 ou é apenas o uso em modelos? Tenho que resolver tudo isso com eventos personalizados?
Atualmente, passo os resultados da validação dos filhos para os pais assim.
você pode usar this.$forceUpdate()
e setTimeout
para renderizar novamente a visualização ao atualizar os dados e descobrir que $refs
não foi atualizado de forma reativa.
this.fetchSomeShit()
.then((data) => {
this.data = data
setTimeout(() => {
this.$forceUpdate()
})
})
use setTimeout
para garantir que os dados foram fornecidos no que eles dizem a fila de tarefas vue
Comentários muito úteis
@ yyx990803 isso significa que usar
this.$refs.*
emcomputed
propriedades também deixará de funcionar na v2 ou é apenas o uso em modelos? Tenho que resolver tudo isso com eventos personalizados?Atualmente, passo os resultados da validação dos filhos para os pais assim.