在 2.0.0-rc.1 中,像这样的构造
<p>Count: {{$refs.components && $refs.components.length}}</p>
<sub-component v-for="item in items" ref="components">
不再工作(计数保持初始值,即使items
和因此组件计数发生变化)。 在 v1 中,$refs 数组会被动更新。
我不确定这是一个错误还是一个功能,但#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 中工作,还是只是在模板中使用? 我是否必须使用自定义事件来解决所有这些问题?我目前像这样将验证结果从孩子传递给父母。