2.0.0-rc.1では、次のような構造
<p>Count: {{$refs.components && $refs.components.length}}</p>
<sub-component v-for="item in items" ref="components">
はもう機能していません( items
でコンポーネント数が変更されても、カウントは初期値のままです)。 v1では、$ refの配列は事後的に更新されます。
これがバグなのか機能なのかはわかりませんが、#2873では言及されていないようです。
これは意図されたものです-理由は、レンダリングプロセス自体の間に$refs
が登録/更新されるようになったためです。 テンプレートで$refs
を使用することはお勧めしません。これは、JavaScriptでのプログラムによるアクセスのみを目的としているためです。
これを含めるために#2873を更新しました。
@ yyx990803これは、 computed
プロパティでthis.$refs.*
を使用すると、v2でも機能しなくなることを意味しますか、それともテンプレートでの使用だけですか? カスタムイベントでこれらすべてを解決する必要がありますか?
私は現在、このように子から親に検証結果を渡します。
this.$forceUpdate()
とsetTimeout
を使用して、データを更新するときにビューを再レンダリングし、 $refs
がリアクティブに更新されないことを確認できます。
this.fetchSomeShit()
.then((data) => {
this.data = data
setTimeout(() => {
this.$forceUpdate()
})
})
setTimeout
を使用して、データがvueタスクキューの内容で提供されていることを確認します
最も参考になるコメント
@ yyx990803これは、
computed
プロパティでthis.$refs.*
を使用すると、v2でも機能しなくなることを意味しますか、それともテンプレートでの使用だけですか? カスタムイベントでこれらすべてを解決する必要がありますか?私は現在、このように子から親に検証結果を渡します。