举一个Vue中引入和不引入ref的效果实例
时间: 2024-03-20 22:42:31 浏览: 69
假设有一个Vue组件需要在模板中渲染一个列表,列表数据来自于组件实例中的一个数组`items`。如果不使用`ref`,则需要在模板中使用`v-for`指令遍历数组,并手动书写模板,如下所示:
```html
<template>
<div>
<ul>
<li v-for="(item, index) in items" :key="index">{{ item }}</li>
</ul>
</div>
</template>
```
但是,如果使用`ref`,则可以将每个列表项封装为一个子组件,并使用`v-for`指令遍历`items`数组,动态创建子组件并传递数据。子组件中可以直接使用`ref`引用父组件中的数据,无需手动传递数据,如下所示:
```html
<template>
<div>
<list-item v-for="(item, index) in items" :key="index" :item="item"></list-item>
</div>
</template>
<script>
import ListItem from './ListItem.vue';
export default {
components: {
ListItem
},
data() {
return {
items: ['item1', 'item2', 'item3']
}
}
}
</script>
```
```html
<template>
<li>{{ item }}</li>
</template>
<script>
export default {
props: ['item']
}
</script>
```
上面的例子中,使用`ref`可以更好的封装列表项,提高代码的可读性和可维护性。
阅读全文