当前位置: 首页 > news >正文

第二十七章 Vue异步更新之$nextTick

目录

一、概述

二、完整代码

2.1. main.js

2.2. App.vue


一、概述

需求:编辑标题, 弹出显示编辑框自动聚焦

1. 点击编辑,显示编辑框

2. 让编辑框,立刻获取焦点

我们常规的思路可能会编写如下代码来实现:

问题:"显示之后",立刻获取焦点是不能成功的!

原因:Vue是异步更新DOM (提升性能),当执行获取焦点这段代码时,前面显示输入框在渲染时还没执行结束。

二、完整代码

2.1. main.js

import Vue from 'vue'
import App from './App.vue'Vue.config.productionTip = falsenew Vue({render: h => h(App),
}).$mount('#app')

2.2. App.vue

<template><div class="app"><div v-if="isShowEdit"><input ref="inp" v-model="editValue" type="text"><button>确认</button></div><div v-else><span>{{ title }}</span><button @click="handleEdit">编辑</button></div></div>
</template><script>
export default {data () {return {title: '大标题',editValue: '',isShowEdit: false}},methods: {handleEdit () {// 1. 显示输入框this.isShowEdit = true// 2. 让输入框获取焦点this.$nextTick(() => {this.$refs.inp.focus()})}}
}
</script><style scoped>
.logout {margin: 20px;
}
button {margin: 10px;
}
</style>


http://www.mrgr.cn/news/64469.html

相关文章:

  • yaml文件编写
  • strncpy_s
  • C++ 的 new 操作符与 C 语言的 malloc 函数的区别
  • LeetCode:633. 平方数之和(Java)
  • Java Iterator 实现杨辉三角
  • Python 条件语句
  • 2024年【金属非金属矿山(地下矿山)安全管理人员】复审模拟考试及金属非金属矿山(地下矿山)安全管理人员实操考试视频
  • 计算机的错误计算(一百四十二)
  • 万字长文详解Hive聚合函数 grouping sets、cube、rollup原理、语法、案例和优化
  • 使用 C++ 进行高效序列化和反序列化的实现(优化版本)
  • 数据丢失不用愁!10款必备的数据恢复软件全介绍
  • 线性排序:如何根据年龄给 100 万用户数据排序?
  • 在使用 AMD GPU 的 PyTorch 中实现自动混合精度
  • 【大模型LLM面试合集】大语言模型架构_tokenize分词
  • 软件测试基础四(服务端知识)
  • AUTOSAR从入门到精通-BswM模块(二)
  • mqtt.fx激活方法
  • 项目的风险
  • 在排序数组中查找元素的第一个和最后一个位置
  • Python酷库之旅-第三方库Pandas(190)
  • 纯前端生成PDF(jsPDF)并下载保存或上传到OSS
  • CSS中的 BFC,是啥呀?
  • 无源元器件-磁珠选型参数总结
  • 32单片机HAL库的引脚初始化
  • C语言第11节:指针(1)
  • 05 Django 框架模型介绍(一)