my-component
がインスタンス化されるルートを定義する必要があります。このコンポーネントは、そう、done
とcancel
コールバックが含まれます:あなたは任意のコードを示していませんでしたし、どのようにあなたがあなたの<my-component>
が、呼んでいるとして
<template>
<my-component @done="doneForm" @cancel="cancelForm"></my-component>
</template>
<script>
import MyComponent from '/some/path/components/MyComponent'
export default {
components: {
myComponent: MyComponent
},
methods: {
doneForm() {
console.log('Form Done')
},
cancelForm() {
console.log('Cancel Form')
}
}
}
</script>
:
var router = new VueRouter({
routes: [
{ path: '/someRoute', component: SomeComponent }
]
]
SomeComponent
は次のようなものになるだろう全体として、は、cancelForm
とdoneForm
のメソッドを保持できる別のコンポーネントのどこかでインスタンス化する必要があります。これらのコールバックが必要ない場合は、ルートを設定してそのコンポーネントに直接進むことができます。
もう一つの選択肢は、Vuexを使ってステートフルなものにすることです。コンポーネントからコールバックを削除し、<my-component>
内でフォームが完了したときに、アプリ内の他の場所に反応できる状態に設定します。イベントでも同じことをして、何かを聞いて何かするイベントを起こすことができます。
Vueルータはルーティングエンジンであり、コンポーネントをロードするためのものではありません。コンポーネントへのルートをロードし、コールバックの方法でそのコンポーネントをロードする必要があります。 – webnoob
Tnxの返信では、(vuejsアプリではなく)1つのコンポーネントでvuejs-routerを使用し、ルートでそのコンポーネントに 'my-component'をロードすることを意味しますか? – YaserKH