zer*_*579 5 vue.js vuejs3 vue-composition-api
我正在努力解决 Vue Composition Api 中动态引用的使用问题。Vue 指南说我可以这样使用它:
<div v-for="item in list" :ref="setItemRef"></div>
import { onBeforeUpdate, onUpdated } from 'vue'
export default {
setup() {
let itemRefs = []
const setItemRef = el => {
if (el) {
itemRefs.push(el)
}
}
onBeforeUpdate(() => {
itemRefs = []
})
onUpdated(() => {
console.log(itemRefs)
})
return {
setItemRef
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我的代码在这里(缩短):
<template>
<section
v-for="(item, i) of storyList"
:ref="(el) => { if (el) { divs.push(el) } }"
/>
</template>
<script lang="ts">
[...]
export default defineComponent({
props: {
storyList: {
type: Array as () => StoryList,
required: true,
},
},
setup() {
const divs = ref([])
return { divs }
},
})
</script>
Run Code Online (Sandbox Code Playgroud)
...我的 Vue 开发工具中只有这个:
data:
divs:Array[0]
$refs:
function(el) { if (el) { _vm.divs.push(el) } }:Array[4]
0:<section id="story-0" class="story-item">
1:<section id="story-1" class="story-item">
2:<section id="story-2" class="story-item">
3:<section id="story-3" class="story-item">
Run Code Online (Sandbox Code Playgroud)
这是不对的,不是吗?我应该从 调用 ref divs,而不是从$refs(vue 3 中不起作用的)调用,对吧?
| 归档时间: |
|
| 查看次数: |
3314 次 |
| 最近记录: |