atelier:mitsuba

i love UI/UX, Blend, XAML, Behavior, P5, oF, Web, Tangible Bits and Physical computing. なにかあればお気軽にご連絡ください。atelier@c-mitsuba.com

vue.jsでMVVMパターン その7:Reactiveプログラミングしたい

初期値に10と2が設定されていて、=ボタンを押すと計算ができるサンプル。
f:id:c-mitsuba:20160221220059p:plain
f:id:c-mitsuba:20160221220103p:plain

ボタン押すのめんどいから。Reactiveプログラミングで、answerプロパティが自動で変わるようにしてみた。

<html>
<script type="text/javascript" src="http://jp.vuejs.org/js/vue.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
<script>
//jQueryはここでしかつかってない
 $(document).ready(function(){
	 	//Model
	 	function getData(){
			vm.$set('data1', 10);
			vm.$set('data2', 2);
		}
		
	 	//ViewModel
		var vm = new Vue({
		    el: "#demo",
			//getもsetもできるプロパティ
		    data:  {
		        data1:0,
				data2:0,
		    },
			//getだけできるリアクティブプロパティ
			//thisはvm
			computed: {
			    answer: function () {
			      return this.data1 + this.data2
			    }
		  }
		});
		
		//initialize
		getData();
	}
);
</script>
<!-- View -->
<body>
<div id="demo">
    <input v-model="data1" number type="number">
	<p>+</p>
    <input v-model="data2" number type="number">
	<p>{{answer}}</p>
</div>
</body>
</html>

次も書き換えていきます。