推荐使用ref去获取/操作DOM?
来源:4-15 城市选择组件-绑定事件并实现点击字母跳转到对应区域

爱学兮的小江江
2021-12-17
不知在哪里看到,在vue中推荐使用ref去获取/操作DOM,不建议使用原生方法。
在城市选择器中 根据首字母定位时,我研究了一下,是可以通过ref去获取元素,并滚动到可视区域
// script
const charsRef = ref<{ [key: string]: Ref }>({});
const clickChar = (val: string) => {
let el: HTMLElement = charsRef.value[val].$el;
el.scrollIntoView();
};
// html
<el-scrollbar max-height="300px">
<template v-for="(value, key) in cities" :key="key">
<el-row
style="margin-bottom: 10px"
:ref="
(el) => {
if (el) charsRef[key] = el;
}
"
>
<el-col :span="2">{{ key }}</el-col>
<el-col :span="22" class="city-name">
<div
class="city-name-item"
v-for="item in value"
:key="item.id"
@click="clickCityItem(item)"
>
<div>{{ item.name }}</div>
</div>
</el-col>
</el-row>
</template>
</el-scrollbar>
写回答
1回答
-
五月的夏天
2021-12-17
这个实际上差不多哈,vue3中如果使用ref,就会多定义变量,会增加性能开销。如果dom元素少可以,但是我们这个案例dom元素比较多 。
00
相似问题
为什么要用ref定义calendar变量
回答 2
这块逻辑我不是很理解
回答 1