Vue.js $nextTick
最近在学习vue.js。了解1.x的基础上再学习2.x的vue。两个版本的确是不会像angular这样1.x和2.x相差甚远。所以学习起来其实还是有很大的关联。但是,终归来说。两者还是有语法上的细微差别的。但是对于此处讲的$nextTick()函数来说,两者并没有什么区别。前两天瞟到了一眼这个 $nextTick这个玩意儿,但是至于它是干什么的,还是不清楚。然后今天在练习项目中就用到了。自己也稍微的去了解了一下。以此做记录。
vue.js中更新数据是异步更新的。在这种情况下,如果我们想一打开加载、渲染页面就实现某种和dom相关的效果。我们知道这个时候需要把相关的代码放到vue的生命周期的created钩子函数中:执行。然而因为异步的原因。这个时候页面并未开始渲染。你就想对某个dom元素实现某种特殊的效果的话,结果就会是徒劳的。这一点形象点描述的话,可以说此时dom元素还在堵车的路上还没有到页面上呢,你就点着他的名字要他做事。那结果肯定是事情也没有做成。因为他人都还没到呢。这个时候$nextTick就出场了,它实质上是一个回调函数,回调函数就意味着把dom元素的相关实现放在这里面的话,它会等着dom来了,才会开始让他做事。那这就很好的解决了页面的异步渲染问题。
解释了$nextTick的用法,那么它的使用场景就是当页面还未渲染的时候,比如created,或者mounted(未全部渲染完成)钩子状态的时候有与dom相关的操作的话。此时就需要使用到$nextTick.
补充:
在vue中还是可以获取原生js的dom元素的。在1.x和2.x版本中的获取方式稍有差异。
1.x
在template模板中如下
<div v-el:"my-dom"></div>
在script中
this.$els.myDom;//dom获取到dom元素, 注意script中需要使用驼峰命名
2.x
在template模板中如下
<div ref="mydom"></div>
在script中
this.$refs.mydom ;//2.x获取dom元素,不用使用驼峰命名
Vue.js $nextTick的更多相关文章
- vue中nextTick
vue中nextTick可以拿到更新后的DOM元素 如果在mounted下不能准确拿到DOM元素,可以使用nextTick 在Vue生命周期的created()钩子函数进行的DOM操作一定要放在Vue ...
- 在webpack中配置vue.js
在webpack中配置vue.js 这里有两种在webpack中配置vue.js的方法,如下: 1.在main.js中引入vue的包: index.html: <!DOCTYPE html> ...
- vue的nextTick的实现
vue的nextTick是用浏览器支持的方法模拟nodejs的process.nextTick 老版本的vue用如下方法来模拟 Promise.thenMutationObserver(Mutatio ...
- 1- js vue.js
1 js 2 Vue.js
- Vue中nextTick()解析
最近,在开发的时候遇到一个问题,让我对vue中nextTick()的用法加深了了解- 下面是在组件中引用的一个拖拽的组件: <vue-draggable-resizable class=&quo ...
- Vue的nextTick是什么?
公司做之前项目的时候,遇到了一些比较困惑的问题,后来研究明白了nextTick的用法. 我们先看两种情况: 第一种: export default { data () { return { msg: ...
- 【vue】nextTick源码解析
1.整体入手 阅读代码和画画是一样的,忌讳一开始就从细节下手(比如一行一行读),我们先将细节代码折叠起来,整体观察nextTick源码的几大块. 折叠后代码如下图 整体观察代码结构 上图中,可以看到: ...
- Vue中$nextTick的理解
Vue中$nextTick的理解 Vue中$nextTick方法将回调延迟到下次DOM更新循环之后执行,也就是在下次DOM更新循环结束之后执行延迟回调,在修改数据之后立即使用这个方法,能够获取更新后的 ...
- 基于源码分析Vue的nextTick
摘要:本文通过结合官方文档.源码和其他文章整理后,对Vue的nextTick做深入解析.理解本文最好有浏览器事件循环的基础,建议先阅读上文<事件循环Event loop到底是什么>. 一. ...
- vue之nextTick全面解析
vue的第一篇文章,介绍一下简单的nextTick方法的实现原理 简介 vue是非常流行的框架,他结合了angular和react的优点,从而形成了一个轻量级的易上手的具有双向数据绑定特性的mvvm框 ...
随机推荐
- JAVA实现微信支付V3
喜欢的朋友可以关注下,粉丝也缺. 相信很多的码友在项目中都需要接入微信支付,虽说微信支付已成为一个普遍的现象,但是接入的过程中难免会遇到各种各样的坑,这一点支付宝的SDK就做的很好,已经完成的都知道了 ...
- 读取excel合并单元格内容
def get_excel_content(excel_path): contents = [] if self.log_path.endswith('xls'): workbook = xlrd.o ...
- 从官网下载指定版本的JDK
从官网下载指定版本的JDK 一.百度搜索jdk,进入最新版Downloads界面 百度搜索jdk,或者jdk下载,点击进入jdk官网最新版本下载界面,可以看到当前最新版本为jdk12 二.找到JDK历 ...
- flask加vue 动画 加载更多
曾经使用flask_paginate(地址:https://blog.csdn.net/qq_42239520/article/details/80378095)进行分页,现在又想新的想法,怎么才能和 ...
- Spring中内置的一些工具类
学习Java的人,或者开发很多项目,都需要使用到Spring 这个框架,这个框架对于java程序员来说.学好spring 就不怕找不到工作.我们时常会写一些工具类,但是有些时候 我们不清楚,我们些的工 ...
- tomcat如何正确的开启远程调试功能
在日常开发中,有时需要对远程服务器上的应用进行远程调试,对于tomcat,要进行远程调试其实很简单,只需要在启动tomcat时开启jpda服务即可. 什么是JPDA呢? JPDA(JavaPlatfo ...
- Charles抓包之HTTPS抓包配置
访问我的博客 前言 由于工作中经常需要配置客户端开发人员对接接口,有时候对接地不太顺利,因此需要经常性地对公司 APP 进行抓包看请求,找出具体的原因. 在公司中开发使用的 Windows 台式电脑, ...
- JDBC Oracle sys 用户连接
Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection( &quo ...
- JSP 基础(一)
JavaServletPage(JSP) 一 JSP简介 Servlet的缺陷 –Servlet的编码.部署和调试任务繁琐 –生成动态网页繁琐,不利于项目分工 ...
- Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <-错误解决方案
做项目的时候因为懒,在写service时直接复制了控制器的依赖注入,之后就出现了这个错误,查了半天. 解决其实很简单,删除掉service中注入的$scope即可.