推荐使用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元素比较多 。

0
0

基于Vue3+Vite+TS,二次封装element-plus业务组件

集成大量实际样例,系统掌握前沿技术栈与二次组件库封装能力

452 学习 · 202 问题

查看课程