Heim > Web-Frontend > js-Tutorial > Hauptteil

Verstehen Sie schnell den Zeitpunkt der Setup-Ausführung von Vue3 (mit Codebeispielen)

藏色散人
Freigeben: 2022-08-09 10:18:29
nach vorne
2208 Leute haben es durchsucht

Zeitpunkt der Setup-Ausführung und zu beachtende Punkte

Der Zeitpunkt der Setup-Ausführung liegt vor beforeCreate

Daten und Methoden können im Setup nicht verwendet werden, da sie noch nicht initialisiert wurden

Da Daten und Methoden nicht im verwendet werden können Setup-Funktion. Um unsere falsche Verwendung zu vermeiden, ändert Vue dies in der Setup-Funktion direkt auf undefiniert.

Setup kann nur synchron sein, nicht asynchron. [Empfohlen: vue-Video-Tutorial]

Verwendung der Vue3.0-Funktion „setup()“

Funktion „setup()“ als Einstiegspunkt für die Verwendung der Kompositions-API innerhalb der Funktion „component

setup()“ nach der anfänglichen Requisite parsing , wird aufgerufen, bevor die Komponenteninstanz erstellt wird. Für Komponentenlebenszyklus-Hooks wird die Funktion setup() vor dem Hook beforeCreate aufgerufen.

Wenn die Funktion setup() ein Objekt zurückgibt, werden die Eigenschaften des Objekts in den Rendering-Kontext der Komponentenvorlage eingefügt. Zum Beispiel:

setup() {
  // 为目标对象创建一个响应式对象
  const state = Vue.reactive((count: 0})
  function increment() {
    state.count++
  }
// 返回一个对象,该对象上的属性可以在模板中使用
  return {
    state,
    increment
  }
}
Nach dem Login kopieren

Das von der Funktion setup() zurückgegebene Objekt hat zwei Attribute

Eines ist ein reaktives Objekt (d. h. ein Proxy-Objekt, das für das Originalobjekt erstellt wurde) und das andere ist eine Funktion. In DOM-Vorlagen können diese beiden Attribute weltweit verwendet werden, wie zum Beispiel:

<view @click="addClick">count值:{{state.count}}</view>
Nach dem Login kopieren

Die Funktion setup() kann zwei optionale Parameter empfangen

Der erste sind die analysierten Requisiten. Dieser Parameter kann verwendet werden, um auf die in der Option „props“ definierten Requisiten zuzugreifen, wie zum Beispiel:

app.component(&#39;ButtonItem&#39;, {
  props: [&#39;buttonTitle&#39;],
  setup(props) {
   console.log(props.buttonTitle) 
  }
})
Nach dem Login kopieren

Der zweite optionale Parameter, der von der Funktion setup() empfangen wird, ist ein Kontextobjekt

Dieses Objekt ist ein gewöhnliches JavaScript-Objekt, das nicht auf Sie reagiert kann die ES6-Objektdestrukturierungssyntax vollständig verwenden, um den Kontext zu dekonstruieren. Darüber hinaus werden drei Komponentenattribute verfügbar gemacht, z. B.:

const component = {
  setup(props, context) {
    // 属性(非响应式对象)
    console.log(context.attrs)
    // 插槽(非响应式对象)
    console.log(context.slots)
    // 发出的事件(方法)
    console.log(context.emit)
  }
}
Nach dem Login kopieren

Wenn setup() mit der Options-API verwendet wird

Verwenden Sie dies nicht innerhalb von setup(). Da die Funktion setup() aufgerufen wird, bevor die Optionen analysiert werden, kann innerhalb der Funktion setup() nicht auf die Optionen der Daten-, Berechnungs- und Methodenkomponenten zugegriffen werden. Der folgende Code ist ein Fehlerbeispiel:

setup() {
  function onClick() {
      console.log(this) // 并不是预期的this
  }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonVerstehen Sie schnell den Zeitpunkt der Setup-Ausführung von Vue3 (mit Codebeispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!