1. $data
- 作用:包含 Vue 实例或组件的响应式数据对象。
- 用法:通过
this.$data
访问组件的 data 数据。 - 示例:
export default { data() { return { message: 'Hello, Vue!' }; }, created() { console.log(this.$data.message); // 输出: Hello, Vue! } };
2. $el
- 作用:指向 Vue 实例或组件的根 DOM 元素。
- 用法:通过
this.$el
访问组件的根 DOM 元素。 - 示例:
export default { mounted() { console.log(this.$el); // 输出: <div id="app">...</div> } };
3. $props
- 作用:包含组件的 props 数据。
- 用法:通过
this.$props
访问组件的 props 数据。 - 示例:
export default { props: ['message'], mounted() { console.log(this.$props.message); // 输出: 父组件传递的数据 } };
4. $refs
- 作用:一个对象,包含所有具有
ref
属性的子组件和 DOM 元素。 - 用法:通过
this.$refs
访问被ref
标记的子组件或 DOM 元素。 - 示例:
<template> <div> <input ref="input" type="text" /> </div> </template> <script> export default { methods: { focusInput() { this.$refs.input.focus(); } }, mounted() { this.focusInput(); } }; </script>
5. $options
- 作用:包含 Vue 实例或组件的选项对象。
- 用法:通过
this.$options
访问组件的选项对象。 - 示例:
export default { data() { return { message: 'Hello, Vue!' }; }, created() { console.log(this.$options.data); // 输出: function () { return { message: 'Hello, Vue!' } } } };
6. $parent
- 作用:指向当前实例的父实例。
- 用法:通过
this.$parent
访问父组件的实例。 - 示例:
export default { mounted() { console.log(this.$parent); // 输出: 父组件的实例 } };
7. $root
- 作用:指向 Vue 应用的根实例。
- 用法:通过
this.$root
访问根实例。 - 示例:
export default { mounted() { console.log(this.$root); // 输出: 根实例 } };
8. $children
- 作用:包含当前实例的直接子实例的数组。
- 用法:通过
this.$children
访问子组件的实例数组。 - 示例:
export default { mounted() { console.log(this.$children); // 输出: 子组件的实例数组 } };
9. $emit
- 作用:触发当前实例上的自定义事件。
- 用法:通过
this.$emit(eventName, arguments)
触发自定义事件。 - 示例:
export default { methods: { handleClick() { this.$emit('custom-click', '子组件的数据'); } } };
10. $on
- 作用:监听当前实例上的自定义事件。
- 用法:通过
this.$on(eventName, callback)
监听自定义事件。 - 示例:
export default { created() { this.$on('custom-event', (data) => { console.log(data); // 输出: 自定义事件的数据 }); } };
11. $once
- 作用:监听当前实例上的自定义事件,但只触发一次。
- 用法:通过
this.$once(eventName, callback)
监听自定义事件。 - 示例:
export default { created() { this.$once('custom-event', (data) => { console.log(data); // 输出: 自定义事件的数据 }); } };
12. $off
- 作用:取消监听当前实例上的自定义事件。
- 用法:通过
this.$off(eventName, callback)
取消监听自定义事件。 - 示例:
export default { created() { const handler = (data) => { console.log(data); }; this.$on('custom-event', handler); this.$off('custom-event', handler); } };
13. $nextTick
- 作用:在下一次 DOM 更新循环结束后执行延迟回调。
- 用法:通过
this.$nextTick(callback)
在 DOM 更新后执行回调。 - 示例:
export default { data() { return { message: 'Hello, Vue!' }; }, methods: { updateMessage() { this.message = 'Hello Vue.js!'; this.$nextTick(() => { console.log(this.$el.textContent); // 输出: Hello Vue.js! }); } } };
14. $slots
- 作用:包含组件的插槽内容。
- 用法:通过
this.$slots
访问组件的插槽内容。 - 示例:
export default { mounted() { console.log(this.$slots.default); // 输出: 插槽内容 } };
15. $attrs
- 作用:包含父组件传递给当前组件的属性(props 之外的属性)。
- 用法:通过
this.$attrs
访问组件的属性。 - 示例:
export default { mounted() { console.log(this.$attrs); // 输出: { class: 'my-class', style: 'color: red' } } };
16. $listeners
- 作用:包含当前组件上监听的事件。
- 用法:通过
this.$listeners
访问组件的事件监听器。 - 示例:
export default { mounted() { console.log(this.$listeners); // 输出: { 'custom-click': function() {} } } };
17. $watch
- 作用:用于监视数据的变化,并在数据变化时执行回调函数。
- 用法:通过
this.$watch(source, callback, options)
监视数据变化。 - 示例:
export default { data() { return { message: 'Hello, Vue!' }; }, methods: { setupWatch() { this.$watch('message', (newVal, oldVal) => { console.log('message changed from', oldVal, 'to', newVal); }); } }, mounted() { this.setupWatch(); } };