今回はVue.jsのmixin機能を利用して肥大化したViewModelをリファクタリングするお話です。 肥大化してしまった例 Vue.jsを利用して画面全体をVMとして扱ことはよくあると思います。具体的には画面全体を囲むHTML要素のidををコンストラクタに渡すオブジェクトのelに設定することです。 下記の例では#js-appをelとして設定しています。 <div id="js-app" class="app"> <div>野菜検索</div> <div> <input v-model="vegetableName" placeholder="野菜"> </div> <button type="button" @click="searchVegetable">野菜を探す</button> <hr> <div>果物検索</div> <div> <input v-model="fruitsN