【Vue.js】transitionを使ってBootstrapのModalをvue.jsで表示する
問題
CSSはbootstrap.cssを利用して、動きはvue.jsで、BootstrapのModalを表示したい。

答え
bootstrapのモーダルは、.fadeに.inを追加して.fade.inにすると、CSSのtransitionが効く。
アニメーション前とアニメーション後に表示状態(display)を調整するとよい様子。
単純なclassの付与、削除ならば、vueのtransitionのenter-class、enter-to-classなどの設定で対応できるのだが、bootstrapのCSSはそうではなさそうなので、以下のようにしてみた。
<transition
v-on:enter="function(el){$(el).css('display', 'block')}"
v-on:after-enter="function(el){$(el).addClass('in')}"
v-on:leave="function(el){$(el).removeClass('in')}"
v-on:after-leave="function(el){$(el).css('display', 'none')}">
<div class="modal fade" v-show="show">>
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" v-on:click="show=false"><span>×</span></button>
<h4 class="modal-title">モーダルのタイトル</h4>
</div>
<div class="modal-body">
<p>モーダルの中身</p>
<p>モーダルの中身</p>
<p>モーダルの中身</p>
</div>
<div class="modal-footer">
<button type="button" v-on:click="show=false" class="btn btn-primary">クリックすると閉じるボタン</button>
</div>
</div>
</div>
</div>
</transition>
show が true になればfadein、showがfalseになればfadeoutする。