P粉0042876652023-08-25 18:25:26
もっと簡単な方法は、v-if または v-for を使用することです。
コンポーネントを直接扱うよりも、コンポーネントの状態を扱い、Vue の応答性の高い魔法を働かせるほうがよいでしょう。
これは例であり、コンポーネント(トースト)を動的に追加し、コンポーネントの状態を操作するだけです
Toast.vue ファイル: ここの v-for はリアクティブであり、新しいエラーがエラー オブジェクトに追加されるたびにレンダリングされます
リーリーErrorTrigger.vue: クリック イベントが発生するたびに、エラーをエラー オブジェクトにプッシュします
リーリー完全な例: https://stackblitz.com/edit/vitejs-vite-mcjgkl
P粉5981402942023-08-25 00:33:13
createVNode(component, props)
と render(vnode,container)
作成: createVNode()
を使用して、プロパティを使用してコンポーネント定義の VNode
を作成します (たとえば、*.vue
から)インポートされた SFC) を render()
に渡して、指定されたコンテナ要素でレンダリングできます。
破棄: render(null,container)
を呼び出すと、コンテナにアタッチされている VNode
が破棄されます。このメソッドは、親コンポーネントがアンマウントされたときに (unmounted
ライフサイクル フック経由で) クリーンアップするために呼び出す必要があります。
注: このメソッドは内部メソッド (createVNode
および render
) に依存しており、将来のバージョンではリファクタリングまたは削除される可能性があります。
createApp(component, props)
および app.mount(container)
作成: createApp()
を使用して、 アプリケーション インスタンスを作成します。このインスタンスには、特定のコンテナ要素上でコンポーネントをレンダリングするために使用できる mount()
メソッドがあります。
破壊: アプリケーション インスタンスには、アプリケーションとコンポーネントのインスタンスを破壊するための unmount()
メソッドがあります。このメソッドは、親コンポーネントがアンマウントされたときに (unmounted
ライフサイクル フック経由で) クリーンアップするために呼び出す必要があります。
注: このメソッドは、コンポーネントごとにアプリケーション インスタンスを作成します。ドキュメント内で複数のコンポーネントを同時にインスタンス化する必要がある場合、かなりのオーバーヘッドが発生する可能性があります。