网站开发技术方案与实施,国内优秀企业网站,中英文建设网站,做新闻类网站还有市场吗介绍
在一些场景#xff0c;ref设置是未知的需要根据动态数据来决定#xff0c;如表格中的input框需要我们主动聚焦#xff0c;就需要给每一个input设置一个ref#xff0c;进而进行聚焦操作。
Demo
点击下面截图中的编辑按钮#xff0c;自动聚焦到相应的输入框中。
ref设置是未知的需要根据动态数据来决定如表格中的input框需要我们主动聚焦就需要给每一个input设置一个ref进而进行聚焦操作。
Demo
点击下面截图中的编辑按钮自动聚焦到相应的输入框中。
template!-- 动态ref --div classtest_refdiv v-foritem in 9 :keyitemspan{{ item }}/span!-- 动态设置ref --el-inputv-modelinputValplaceholderPlease input:ref(el:refItem) handleSetInputMap(el, item)/el-button typeprimary :iconEdit clickhandleEdit(item) //div/div
/templatescript langts setup
import { ref } from vue;
import { Edit } from element-plus/icons-vue;
import { ComponentPublicInstance } from vue;
type refItem Element | ComponentPublicInstance | null;
const inputVal ref();
const inputRefMap ref({});/** 编辑 */
const handleEdit (item: number) {// 若输入框此时还没有渲染出来如先隐藏再触发显示 需要使用nextTick进行聚焦inputRefMap.value[Input_Ref_${item}].input.focus();
};/** 动态设置Input Ref */
const handleSetInputMap (el: refItem, item: number) {if (el) {inputRefMap.value[Input_Ref_${item}] el;}
};
/scriptstyle langscss scoped
.test_ref {padding: 50px; div {width: 300px;margin: 0 auto;display: flex;justify-content: center;align-items: center;gap: 20px;margin-bottom: 10px;}
}
/style效果