が私のコードです:すべてのVue.jsと計算プロパティがここ
<div id="app">
<p>here is the message: {{message}}</p>
<p>{{a}}</p>
<p>here is the reversed message: {{reversedMessage}}</p>
</div>
<script type="text/javascript">
var vm = new Vue({
el: '#app',
data: {
message: 'Hello',
a: 1,
},
computed: {
reversedMessage: function() {
this.a += 1;
return this.message.split('').reverse().join('')
}
}
});
</script>
まず、なぜの値ははなり?私はは計算されたプロパティの前にあるので、その値はでなければならず、次の行で計算されたプロパティの関数を呼び出した後、その値はになります。これを私に説明してもらえますか?
及び第二:クロムデベロッパーツールで、Iはの値を変更するとき(以下同様):pタグで
vm.a = 8
は、値がためがなり+ 1。なぜ?!だから私はデベロッパーツールコンソールにの値を変更するたびに、pタグでの値は、+ 1になります!なぜ計算されたプロパティの関数が呼び出され、の値をに変更するのですか?
'まず、なぜ1の値が2になるのですか?それに1を追加するからです。私はあなたが "計算された特性の前に"何を意味するか分かりません。それが変化している理由は、計算されたプロパティが 'reverseMessage'で' a'が使用されていると考えるからです。 'computed'プロパティのデータを変更するべきではありません。 –
@BillCriswell私は、計算されたプロパティのaに1を加え、aは計算されたプロパティの前にレンダリングされることを意味します。だから私は価値が1であるべきだと思った。 – pershianix
それはとても素早く起こります。テンプレートから '{{reversedMessage}}'を削除すると '1'のままになります。 –