在 Vue 3.0 中,实例属性是在组件实例上直接访问的属性。以下是一些常见的实例属性:

1. $el

$el 是一个指向当前组件根元素的引用。在组件被挂载后,可以通过 $el 来访问和操作组件的根 DOM 元素。
<script>
export default {
  mounted() {
    console.log(this.$el); // 当前组件的根元素
  },
};
</script>

2. $data

$data 是一个指向组件数据对象的引用,包含组件实例中声明的所有响应式数据。
<script>
export default {
  data() {
    return {
      message: 'Hello, Vue 3.0!',
    };
  },
  mounted() {
    console.log(this.$data); // { message: 'Hello, Vue 3.0!' }
  },
};
</script>

3. $props

$props 是一个指向组件接收到的所有 props 的引用。
<script>
export default {
  props: ['propA', 'propB'],
  mounted() {
    console.log(this.$props); // { propA: ..., propB: ... }
  },
};
</script>

4. $refs

$refs 包含了组件中所有拥有 ref 特性的子组件和元素。
<template>
  <div ref="myDiv">This is a div</div>
</template>

<script>
export default {
  mounted() {
    console.log(this.$refs.myDiv); // 对应的 DOM 元素
  },
};
</script>

5. $slots

$slots 包含了插槽的内容,可以通过名称访问具名插槽。
<template>
  <div>
    <slot name="header"></slot>
    <slot></slot> <!-- 默认插槽 -->
  </div>
</template>

<script>
export default {
  mounted() {
    console.log(this.$slots.header); // 具名插槽的内容
    console.log(this.$slots.default); // 默认插槽的内容
  },
};
</script>

6. $options

$options 包含了实例初始化选项,其中包括 data、props、生命周期钩子等。
<script>
export default {
  data() {
    return {
      message: 'Hello, Vue 3.0!',
    };
  },
  mounted() {
    console.log(this.$options.data()); // { message: 'Hello, Vue 3.0!' }
  },
};
</script>

注意事项:

  •  在 Vue 3.0 中,Vue 实例的属性被移动到了 app.config.globalProperties 中。你可以通过 app.config.globalProperties.$el、app.config.globalProperties.$data 等来访问这些属性。

  •  在 Vue 3.0 中,实例属性的访问通常是在生命周期钩子或其他方法中进行的。在 setup 函数中,实例属性的访问方式会略有不同,需要通过第二个参数(context)来访问,例如 context.refs、context.attrs。


这些实例属性为你提供了访问组件实例中不同方面的信息的途径,可以根据需要使用它们来进行一些操作。


转载请注明出处:http://www.zyzy.cn/article/detail/573/Vue 3.0