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

vue的$nextTick应用场景

文章目录

    • $nextTick有什么作用?
      • 一、NextTick是什么
      • 二、为什么要有`nextTick`?

$nextTick有什么作用?

一、NextTick是什么

官方对其的定义

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM

什么意思呢?

我们可以理解成,Vue 在更新 DOM 时是异步执行的。当数据发生变化,Vue将开启一个异步更新队列,视图需要等队列中所有数据变化完成之后,再统一进行更新

场景1:

<p ref="continer">{{ msg }}</p>
<button @click="change()">改变</button>
data() {return {msg: '你好'}},methods: {change() {this.msg += '呀'console.log(this.$refs.continer.innerText)// 解决方法//   this.$nextTick(() => {//     console.log(this.$refs.continer.innerText)//   })}},

这时候想获取页面最新的DOM节点,却发现获取到的是旧值

console.log(this.$refs.continer.innerText) // 你好

因为,点击事件触发后,vue会把对应方法内的任务执行完以后,再进行页面渲染,所以,拿到的是老的值。

场景2:

	<p v-if="!isEdit">姓名:{{ name }}</p><p v-if="isEdit">姓名: <input type="text" ref="ipt" v-model="name" /></p><br /><button @click="change">编辑</button>
data() {return {name: 'test',isEdit: false}},methods: {change() {this.isEdit = true// 此时,我想直接获取焦点,行不通//因为Dom还没更新的时候就已经执行了这行代码,所以获取不到焦点// this.$refs.ipt.focus()this.$nextTick(() => {this.$refs.ipt.focus()})}},

二、为什么要有nextTick

举个例子

{{num}}
for(let i=0; i<100000; i++){num = i
}

如果没有 nextTick 更新机制,那么 num 每次更新值都会触发视图更新(上面这段代码也就是会更新10万次视图),有了nextTick机制,只需要更新一次,所以nextTick本质是一种优化策略

http://www.lryc.cn/news/319264.html

相关文章:

  • springboot RestTemplate 发送xml、接收xml、pojo中的属性转为属性
  • Lua-Lua与C++的交互2
  • 学python新手如何安装pycharm;python小白如何安装pycharm
  • Oracle Primavera P6 数据库升级
  • 共享库的创建gcc选项“-shared -fPIC -WI”
  • 微服务:Bot代码执行
  • Python 导入Excel三维坐标数据 生成三维曲面地形图(面) 3、线条平滑曲面但有条纹
  • Vue.js+SpringBoot开发数字化社区网格管理系统
  • java SSM农产品订购网站系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
  • vsto快速在excel中查找某个字符串
  • Unity类银河恶魔城学习记录10-1 10-2 P89,90 Character stats - Stat script源代码
  • 西门子TIA中配置Anybus PROFINET IO Slave 模块
  • 在 Rust 中使用 Serde 处理json
  • 【数据库】数据库介绍
  • python 第三方库(PyPinyin\shortuuid\json)
  • 一文解读ISO26262安全标准:术语(二)
  • 【Datawhale学习笔记】从大模型到AgentScope
  • QWebEngineView添加自定义网址协议UrlScheme
  • react中使用腾讯地图
  • deepin23beta中SQLite3数据库安装与使用
  • 前后端分离项目环境搭建
  • HTML静态网页成品作业(HTML+CSS)——家乡漳州介绍设计制作(1个页面)
  • 世界第二对海信到底有多重要?
  • 多站合一的音乐搜索下载助手PHP源码l亲测
  • webserver烂大街?还有必要做么?
  • 3.Redis命令
  • xray问题排查,curl: (35) Encountered end of file(已解决)
  • 【数据库】Oracle内存结构与参数调优
  • PS学习-抠图-蒙版-冰块酒杯等透明物体
  • 绝赞春招拯救计划 -- 操作系统,组成原理,计网