Vue3实现页面刷新input自动聚焦的两种方式
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
第一种:使用自定义指令 v-focus
- 在文件夹src/utils下新建文件夹 directives 存放聚焦的js文件 focusDirective.js
import { nextTick } from 'vue';
export default {
mounted(el) {
// 确保元素挂载,数据被解析后,
nextTick().then(() => {
el.focus();
});
}
}
- 组件模板中
<input v-focus type="text" />
- 组件脚本代码中
// 若使用的是vue3的setup语法糖需要分出来写
<script>
import focusDirective from '@/utils/directives/focusDirective.js';
export default {
directives: {
focus: focusDirective
}
};
</script>
<script setup>...</script>
第二种:使用 el-input的 focus() 获取焦点
- 组件模板中
<el-input
ref="isFocus"
其他..
/>
- 组件脚本中
<script setup>
const isFocus = shallowRef(null);
onMounted(() => {
inputAutoFocus();
});
function inputAutoFocus() {
nextTick(() => {
isFocus.value.focus();
});
}
</script>
注意:如果页面同时存在这两个,生效的只保留最后一个。
GitHub 加速计划 / vu / vue
207.55 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 5 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献5条内容
所有评论(0)