当前位置: 首页 > 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.lryc.cn/news/475578.html

相关文章:

  • 【51 Pandas+Pyecharts | 深圳市共享单车数据分析可视化】
  • 【Clikhouse 探秘】ClickHouse 物化视图:加速大数据分析的新利器
  • 线程相关题(线程池、线程使用、核心线程数的设置)
  • 2181、合并零之间的节点
  • powerlaw:用于分析幂律分布的Python库
  • 工作管理实战指南:利用Jira、Confluence等Atlassian工具打破信息孤岛,增强团队协作【含免费指南】
  • JAVA语言多态和动态语言实现原理
  • 阿里云-防火墙设置不当导致ssh无法连接
  • 使用WebAssembly优化Web应用性能
  • 软件测试模型
  • 动态规划——两个数组的dp问题
  • 视频QoE测量学习笔记(二)
  • RSA算法详解:原理与应用
  • YOLOv6-4.0部分代码阅读笔记-effidehead_fuseab.py
  • 特朗普概念股DJT股票分析:为美国大选“黑天鹅事件”做好准备
  • 【MySQL】 运维篇—故障排除与性能调优:常见故障的排查与解决
  • Android R S T U版本如何在下拉栏菜单增加基本截图功能
  • C#二叉树原理及二叉搜索树代码实现
  • .eslintrc.js 的解释
  • 确保企业架构与业务的一致性与合规性:数字化转型中的关键要素与战略实施
  • goframe开发一个企业网站 前端界面 拆分界面7
  • Postman断言与依赖接口测试详解!
  • github打不开网络问题
  • 智能教育工具:基于SpringBoot的在线试题库
  • typescript 如何跳过ts类型检查?
  • 详解ReentrantLock--三种加锁方式
  • SQL 基础语法(一)
  • Python酷库之旅-第三方库Pandas(190)
  • Spring学习笔记_19——@PostConstruct @PreDestroy
  • 《云计算网络技术与应用》实训8-1:OpenvSwitch简单配置练习