模板引用如何在常量内工作?
P粉777458787
P粉777458787 2023-09-09 17:59:43
0
1
544

关于vue中模板引用的问题

我正在查看有关“refs”的 vue 文档,在它解释 v-for 内的 ref 的部分中给出了以下示例:

<script setup>
import { ref, onMounted } from 'vue'

const list = ref([
  /* ... */
])

const itemRefs = ref([])

onMounted(() => console.log(itemRefs.value))
</script>

<template>
  <ul>
    <li v-for="item in list" ref="itemRefs">
      {{ item }}
    </li>
  </ul>
</template>

我能理解它的用途

const itemRefs = ref([])

但我不明白为什么 ref 也应用于

const list = ref([
   /* ... */
])

在沙箱中,可以在不损害函数的情况下从“列表常量”中删除引用,那么这个常量内的真正应用程序是什么?

<script setup>
import { ref, onMounted } from 'vue'

// const with ref
const list = ref([1, 2, 3])

const itemRefs = ref([])

onMounted(() => {
  alert(itemRefs.value.map(i => i.textContent))
})
</script>

<template>
  <ul>
    <li v-for="item in list" ref="itemRefs">
      {{ item }}
    </li>
  </ul>
</template>
<script setup>
import { ref, onMounted } from 'vue'

// const without ref
const list = ([1, 2, 3])

const itemRefs = ref([])

onMounted(() => {
  alert(itemRefs.value.map(i => i.textContent))
})
</script>

<template>
  <ul>
    <li v-for="item in list" ref="itemRefs">
      {{ item }}
    </li>
  </ul>
</template>

P粉777458787
P粉777458787

全部回复(1)
P粉691958181

使用 ref 将 list 转换为反应变量。每当添加新项目或以其他方式改变它时,监视它的其他函数或模板部分都会更新。在没有 ref 的示例中,当您将新项目追加到列表中时,它不会自动在模板中呈现。

我能理解你的困惑,我猜你可能来自 vue2 世界。我强烈建议您阅读有关反应性的 vue3 文档。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!