私は、コンポーネントReusable
と、データの小道具を設定するメソッドonClick
を持っているとします。私はこのコンポーネントを再利用可能にしたい、そしてスロットを使って部品をオーバーライドしたい。私は方法の多くを持っている場合親スロットに再利用可能なコンポーネントアクセスの子メソッド
<div class="reusable">
<h2>Reusable</h2>
<slot name="clicker" v-bind:onClick="onClick">
Default stuff <button v-on:click="onClick">Close</button>
</slot>
<p v-if="clicked">You clicked me</p>
</div>
<div class="parent">
<h1>Parent</h1>
<reusable>
<template slot="clicker" scope="reusable">
<button click="reusable.onClick">
Close from parent
</button>
</template>
</reusable>
</div>
これは冗長で騒々しい得るかもしれない、と私は疑問に思いました。私はキヤノンを理解したよう
、私はreusable
からparent
にスコーププロパティとしてonClick
方法を渡す必要があります:は良い方法です、またはこれは完全に腐っていますか?
私はrefsを使用して、親のメソッドthis.$refs.reusable.onClick
を呼び出し、ダイナミックコンポーネントを指定してスワップアウトすることを検討しました。どちらも直観に反しているようです。
*親コンポーネントの* child *コンポーネントから 'onClick'イベントを処理したいと思いますが、それは正しいのですか? – ironcladgeek
@ironcladgeek私は 'parent'がここの親であると信じています、' reusable'は 'parent'sスコープを子としてレンダリングされます:なぜ' onClick'をバインドできないのですか? 'parent'コンポーネントは'再利用可能 'について何も知る必要はなく、単にそれをオーバーライドしたいだけです。私は言うべきです:上の例がうまくいけば、私はそれが正しい方法であるかどうかを知りたいのです。 – Wil