VUE(七): ref属性,nextTick与对象深度改变

本文详细介绍了Vue中ref属性的使用,包括在组件和DOM元素上的应用,强调了$refs对象非响应式的特点。此外,探讨了nextTick的原理及其在数据变化后更新DOM操作中的重要性。同时,讨论了Vue中对象深度改变的问题,提出使用Vue.set和Object.assign()来确保视图更新。
摘要由CSDN通过智能技术生成
一、ref属性

ref 用来给DOM元素或子组件注册引用信息。引用信息会根据父组件的 $refs 对象进行注册。

  • 如果在普通的DOM元素上使用,引用信息就是DOM元素
  • 如果用在子组件上,引用信息就是组件实例
  • 想要在Vue中直接操作DOM元素,就必须用ref属性进行注册
  • $ref不是响应式的,因此不要在此对象中试图去改变数据
  • 当v-for去遍历元素或者组件时,引用信息则是一个数组
1.ref作用在组件上

html:

<div id="ref-outside-component" v-on:click="consoleRef">
    <component-father ref="outsideComponentRef">
    </component-father>
    <p>ref在外面的组件上</p>
</div>

js:

var refoutsidecomponentTem={
   
    template:"<div class='childComp'><h5>我是子组件</h5></div>"
};
var  refoutsidecomponent=new Vue({
   
    el:"#ref-outside-component",
    components:{
   
        "component-father":refoutsidecomponentTem
    },
    methods:{
   
        consoleRef:function () {
   
            console.log(this); // #ref-outside-component     vue实例
            // 通过$refs对象获取到此组件的引用
            console.log(this.$refs.outsideComponentRef);  // 输出: 此组件实例对象
        }
    }
});
2.ref作用在DOM元素上

html:

<!--ref在外面的元素上-->
<div id="ref-outside-dom" v-on:click="consoleRef" >
   <p  ref="outsideDomRef">ref在外面的元素上</p>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值