学习笔记:Vue——处理边界情况

 

访问元素&组件

01.访问根实例 $root

复制代码
// Vue 根实例
new Vue({
  data: {
    foo: 1
  },
  computed: {
    bar: function () { /* ... */ }
  },
  methods: {
    baz: function () { /* ... */ }
  }
})
复制代码

所有的子组件都可以将这个实例作为一个全局store来访问或使用

复制代码
// 获取根组件的数据
this.$root.foo

// 写入根组件的数据
this.$root.foo = 2

// 访问根组件的计算属性
this.$root.bar

// 调用根组件的方法
this.$root.baz()
复制代码

 

02.访问父级组件实例 $parent

$parent可以在后期随时触达父级组件,以替代将数据以prop的方式传入子组件的方式

注意:在绝大多数情况下,触达父级组件会使得你的应用更难调试和理解。

 

03.访问子组件实例或子元素 ref

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

该<base-input>组件也可以使用一个类似的ref提供对内部这个指定元素的访问,例如:

<input ref="input">

甚至可以通过其父级组件定义方法:

methods: {
  // 用来从父级组件聚焦输入框
  focus: function () {
    this.$refs.input.focus()
  }
}

这样就允许父级组件通过下面的代码聚焦<base-input>里的输入框:

this.$refs.usernameInput.focus()

 

注意:$refs只会在组件渲染完成之后生效,并且它们不是响应式的。你应该避免在模板或计算属性中访问$refs

 

04.程序化的事件侦听器 $emit

$emit可以被v-on侦听

  • 通过$on(eventName, eventHandler) 侦听一个事件
  • 通过$once(eventName, eventHandler) 一次性侦听一个事件
  • 通过$off(eventName, eventHandler) 停止侦听一个事件

 

 

文档链接:https://cn.vuejs.org/v2/guide/components-edge-cases.html

 

posted on   独自去流浪  阅读(659)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示