vue学习(八)nextTick[异步更新队列]的使用和应用
nextTick的使用#
为了数据变化之后等待vue完成更新DOM,可以在数据变化之后立即使用Vue.nextTick()在当前的回调函数中能获取最新的DOM
<div id="app"> <h3>{{msg}}</h3> </div> <script> let app = new Vue({ el:'#app', data:{ msg:'晓强' }, }) app.msg = '新的数据-晓强' // console.log(app.$el.textContent) // 为了数据变化之后等待vue完成更新DOM,可以在数据变化之后立即使用Vue.nextTick() // 在当前的回调函数中能获取最新的DOM Vue.nextTick(()=>{ console.log(app.$el.textContent) }) </script>
nextTick的应用#
看下面的代码
<div id="app"> <App></App> </div> <script> /* * 需求: * 在页面拉取一个接口,这个接口返回一些数据,这些数据是这个页面的一个浮层组件要依赖的, * 然后我在接口,一返回数据就展示了这个浮层组件, * 展示的同时上报一些数据给后台(这些数据是父组件从接口拿的) * 这个时候,神奇的事件发生了,虽然我拿到了数据了,但是浮层展现的时候, * 这些数据还未更新到组件上去,上报失败 * */ const Pop = { data() { return { isShow: false } }, props:{ name:{ type: String, default:'' } }, template: ` <div v-if="isShow"> {{name}} </div> `, methods: { show() { this.isShow=true; console.log(this.name) } }, }; const App = { data() { return { name: '' } }, created() { // 模拟异步请求 setTimeout(()=>{ this.name='晓强'; this.$refs.pop.show(); },1000) }, components: { Pop }, template: `<pop ref='pop' :name="name"></pop>` }; let app = new Vue({ el: '#app', components: { App }, }) </script>
看下图一秒钟之后 页面显示 但是console.log没有内容
修改如下:
this.$nextTick(()=>{ this.$refs.pop.show(); })
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现