学习笔记: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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理