菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻

Vue 3.0 模板引用

原创
05/13 14:22 更新

该页面假设你已经阅读过了[ 组件基础 。如果你还对组件不太了解,推荐你先阅读它。

尽管存在 prop 和事件,但有时你可能仍然需要直接访问 JavaScript 中的子组件。为此,可以使用 ref attribute 为子组件或 HTML 元素指定引用 ID。例如:

    <input ref="input" />

例如,你希望以编程的方式 focus 这个 input 在组件上挂载,这可能有用

    const app = Vue.createApp({})
    app.component('base-input', {
      template: `
        <input ref="input" />
      `,
      methods: {
        focusInput() {
          this.$refs.input.focus()
        }
      },
      mounted() {
        this.focusInput()
      }
    })

此外,还可以向组件本身添加另一个 ref,并使用它从父组件触发 focusInput 事件:

    <base-input ref="usernameInput"></base-input>
    this.$refs.usernameInput.focusInput()

refv-for 一起使用时,你得到的 ref 将是一个数组,其中包含镜像数据源的子组件。

WARNING

$refs 只会在组件渲染完成之后生效。这仅作为一个用于直接操作子元素的“逃生舱”——你应该避免在模板或计算属性中访问 $refs

综合评分:9.9 评分 请对本文进行纠错,及学习过程中有困难疑惑可在此进行讨论