Vue 3.0 實例property

2021-11-03 16:21 更新

#$data

  • 類型:Object

  • 詳細:

組件實例觀察的數(shù)據(jù)對象。組件實例代理了對其 data 對象 property 的訪問。

#$props

  • 類型:Object

  • 詳細:

當(dāng)前組件接收到的 props 對象。組件實例代理了對其 props 對象 property 的訪問。

#$el

  • 類型:any

  • 僅可讀

  • 詳細:

組件實例使用的根 DOM 元素。 對于使用片段的組件,$el將是Vue用于跟蹤組件在DOM中位置的占位符DOM節(jié)點。建議使用模板引用直接訪問DOM元素,而不是依賴$el

#$options

  • 類型:Object

  • 僅可讀

  • 詳細:

用于當(dāng)前組件實例的初始化選項。需要在選項中包含自定義 property 時會有用處:

  1. const app = Vue.createApp({
  2. customOption: 'foo',
  3. created() {
  4. console.log(this.$options.customOption) // => 'foo'
  5. }
  6. })

#$parent

  • 類型:Vue instance

  • 僅可讀

  • 詳細:

父實例,如果當(dāng)前實例有的話。

#$root

  • 類型:Vue instance

  • 僅可讀

  • 詳細:

當(dāng)前組件樹的根組件實例。如果當(dāng)前實例沒有父實例,此實例將會是其自己。

#$slots

  • 類型:{ [name: string]: (...args: any[]) => Array<VNode> | undefined }

  • 僅可讀

  • 詳細:

用來訪問被插槽分發(fā)的內(nèi)容。每個具名插槽有其相應(yīng)的 property (例如:v-slot:foo 中的內(nèi)容將會在 this.$slots.foo 中被找到)。default property 包括了所有沒有被包含在具名插槽中的節(jié)點,或 v-slot:default 的內(nèi)容。

在使用渲染函數(shù)書寫一個組件時,訪問 this.$slots 最有幫助。

  • 示例:

  1. <blog-post>
  2. <template v-slot:header>
  3. <h1>About Me</h1>
  4. </template>
  5. <template v-slot:default>
  6. <p>
  7. Here's some page content, which will be included in $slots.default.
  8. </p>
  9. </template>
  10. <template v-slot:footer>
  11. <p>Copyright 2020 Evan You</p>
  12. </template>
  13. </blog-post>

  1. const app = Vue.createApp({})
  2. app.component('blog-post', {
  3. render() {
  4. return Vue.h('div', [
  5. Vue.h('header', this.$slots.header()),
  6. Vue.h('main', this.$slots.default()),
  7. Vue.h('footer', this.$slots.footer())
  8. ])
  9. }
  10. })

  • 參考

#$refs

  • 類型:Object
  • 僅可讀
  • 詳細:

一個對象,持有注冊過 ref attribute 的所有 DOM 元素和組件實例。

#$attrs

  • 類型:Object
  • 僅可讀
  • 詳細:

包含了父作用域中不作為組件 props自定義事件。當(dāng)一個組件沒有聲明任何 prop 時,這里會包含所有父作用域的綁定,并且可以通過 v-bind="$attrs" 傳入內(nèi)部組件——在創(chuàng)建高階的組件時非常有用。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號