vue里边的ref和nextTick是什么?

getLi(){

console.log(this.$refs.li1[0]);

},




![在这里插入图片描述](https://img-blog.csdnimg.cn/20200506211706373.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NTX0RHRA==,size_16,color_FFFFFF,t_70)  

我们现在通过ref绑定然后就获取到li了



**注意** ref支持同名!比如这里直接写成`ref="'li'"`就可以了



我们现在通过代码来了解一下ref如何传参



<button @click="getLi">点我</button>

<ul>

  <!-- vue中 不提倡直接操作Dom 因为有虚拟dom

        但是不是禁止直接操作,很多需求直接操作比较快捷的(尤其是较简易的)-->

  <li :ref="'li'+i" v-for="i of 10" :key="i"> {{i}} </li>

</ul>

<button @click="show = !show">{{show}}</button>



<button @click="start">雪糕</button>

<HelloWorld ref="xg" v-if="show" :n="n"></HelloWorld>

子组件

<h1>{{v}}</h1>



我们现在来看一下上述代码做了些什么  

`首先点击一下按钮,然后触发一个strat的函数,这个函数调用了ref为xg的组件内部的start方法,也就是我们子组件内部的start方法`



我们看一下页面效果  

![在这里插入图片描述](https://img-blog.csdnimg.cn/202005062130503.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NTX0RHRA==,size_16,color_FFFFFF,t_70)  

我们可以看出,代码执行成功,也就是说,ref可以以用来传递数据 但是只能用来`父传子`



ref的作用:



1.  可以让vue直接操作dom

2.  另类的传参方式



[]( )nextTick

==================================================================



nextTick是什么?  

当数据更新的时候,视图并不会立即渲染,这个时候我们期望获取到视图更新后的数据,可以通过 `nextTick` 来进行操作



我们具体通过代码来看



我们现在先看一个效果



<button @click="info">{{n}}</button>



![在这里插入图片描述](https://img-blog.csdnimg.cn/20200506214042276.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NTX0RHRA==,size_16,color_FFFFFF,t_70)



我们看一看到输出框里,左边是修改后的值,右边是当前的值,也就是没修改的值



那我们如果直接需要修改后的值的话,需要做一下简单的处理



<button @click="info">{{n}}</button>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值