Vue组件-$refs、$nextTick和name属性的使用

文章详细介绍了在Vue中如何通过$refs获取组件对象和DOM,强调了$nextTick在异步更新DOM中的作用,以及组件name属性的使用,包括在何时何地获取DOM、利用$nextTick确保DOM更新后的操作,以及组件的命名规则。
摘要由CSDN通过智能技术生成

一、获取DOM

通过id或ref属性获取原生DOM

  • 在mounted生命周期 – 2种方式获取原生DOM标签
    • 目标标签 – 添加id / ref
    • 恰当时机, 通过id / 通过ref属性 获取目标标签
      在这里插入图片描述
      在这里插入图片描述

二、$refs获取组件对象

通过ref属性获取组件对象

在这里插入图片描述

三、$nextTick异步更新DOM

  • $nextTick原地返回Promise对象

原因:Vue更新DOM是异步的

    -----html部分
    <p ref="myp">
        {{ count }}
    </p>
    <button @click="btn">
        点击count+1,马上提取p标签的内容
    </button>
    -------js部分
    btn() {
        this.count++
        //vue检测数据更新,开启一个DOM更新队列(异步任务)
        //vue更新dom是异步代码
    console.log(this.$refs.myp.innerHTML);//0(还是默认data定义的0)
    }

等DOM更新后, 触发此方法里函数体执行

  • 语法: this.$nextTick(函数体)
btn() {
    this.count++
    //vue检测数据更新,开启一个DOM更新队列(异步任务)
    //vue更新dom是异步代码
    // console.log(this.$refs.myp.innerHTML);//0

    //解决方法 DOM更新完会挨个触发$nextTick里的函数体
    this.$nextTick(() => {
        console.log(this.$refs.myp.innerHTML);//

    })
}

扩展 可采用await 取代回调函数

	async btn() {
        //扩展 await取代回调函数
        //$nextTick函数 原地返回Promise对象
        await this.$nextTick()
        console.log(this.$refs.myp.innerHTML)
    }

四、组件name属性的使用

组件name可用作注册组件名字

  • 1. 组件定义name属性和值
    在这里插入图片描述
  • 2.注册组件可用上面name的值
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gik99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值