Vue.js进阶技巧Day05 $nextTick的两种应用场景

7 篇文章 0 订阅

$nextTick应用场景:

1.如果要在‘created()’ 钩子函数中进行DOM操作,因为created()在调用时,DOM渲染还未完成,所以无法直接操作,需要通过

$nextTick() 来完成

created: 实例已经在内存中创建OK,此时 data 和 methods 已经创建OK,还未开始编译模板

mounted: 此时,已经将编译好的模板,挂载到了页面的指定容器中显示

<template>
	<div>
		<h1 ref='h1'></h1>
	</div>
</template>

<script>
	export default{
		data(){
			return {
				msg:"nextTick案例"
			}
		},
		created(){
			this.$nextTick(()=>{
				this.$refs.h1.innerHTML = '修改内容'
			})
		}
	}
</script>

<style>
</style>

2. 更新数据后,想要使用js对新的视图进行操作时

<template>
	<div>
		<h1 ref='h1'>{{msg}}</h1>
		<button class='btn btn-primary' @click='test'>Test</button>
	</div>
</template>

<script>
	export default{
		data(){
			return {
				msg:"nextTick案例"
			}
		},
		methods:{
			test(){
				this.msg = '123'
				console.log(this.$refs.h1.innerHTML) //拿到的仍然是修改前的数据
				//这样才能拿到修改后的数据
				this.$nextTick(()=>{
					console.log(this.$refs.h1.innerHTML)
				})
			}
		}
	}
</script>

<style>
</style>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值